当前位置: 首页>>代码示例>>C#>>正文


C# BusinessContext.GetTargetMetaClassName方法代码示例

本文整理汇总了C#中BusinessContext.GetTargetMetaClassName方法的典型用法代码示例。如果您正苦于以下问题:C# BusinessContext.GetTargetMetaClassName方法的具体用法?C# BusinessContext.GetTargetMetaClassName怎么用?C# BusinessContext.GetTargetMetaClassName使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在BusinessContext的用法示例。


在下文中一共展示了BusinessContext.GetTargetMetaClassName方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: InitializeMappingDocument

        /// <summary>
        /// Initializes the mapping document.
        /// </summary>
        /// <param name="context">The context.</param>
        protected override void InitializeMappingDocument(BusinessContext context)
        {
            InitializeMappingDocumentRequest request = ((InitializeMappingDocumentRequest)context.Request);

            MetaClass metaClass = DataContext.Current.GetMetaClass(context.GetTargetMetaClassName());
            List<PrimaryKeyId> primaryKeyIds = new List<PrimaryKeyId>();

            // Create Default Mapping
            MappingDocument retVal = new MappingDocument();

            DataTable dataTable = request.Data.Tables[request.TableIndex];

            MappingElement mapping = new MappingElement(dataTable.TableName, metaClass.Name);
            retVal.Add(mapping);

            MappingElementBuilder builder = new MappingElementBuilder(retVal);

            //Call creation mapping document by saved patterns
            DefaultMappingHelper.CreateMapingByPatternComparision(dataTable, metaClass, builder);

            // Write Response
            InitializeMappingDocumentResponse response = new InitializeMappingDocumentResponse();
            response.MappingDocument = retVal;

            context.SetResponse(response);
        }
开发者ID:0anion0,项目名称:IBN,代码行数:30,代码来源:OrganizationRequestHandler.cs

示例2: ResetDeliveryAttempts

        /// <summary>
        /// Resets the delivery attempts.
        /// </summary>
        /// <param name="context">The context.</param>
        protected virtual void ResetDeliveryAttempts(BusinessContext context)
        {
            MetaObject metaObject = MetaObjectActivator.CreateInstance(context.GetTargetMetaClassName(), context.GetTargetPrimaryKeyId().Value);

            metaObject[OutgoingMessageQueueEntity.FieldDeliveryAttempts] = 0;

            metaObject.Save();
        }
开发者ID:0anion0,项目名称:IBN,代码行数:12,代码来源:OutgoingMessageQueueRequestHandler.cs

示例3: Execute

 public void Execute(BusinessContext context)
 {
     _log.Debug("Execute (IPlugin) for {0}. Metaclass: {1}. PrimaryKey: {2}. Plugin Stage: {3}",
         context.GetMethod(),
         context.GetTargetMetaClassName(),
         context.GetTargetPrimaryKeyId().HasValue ? context.GetTargetPrimaryKeyId().Value.ToString() : "null",
         context.PluginStage);
 }
开发者ID:smchristenson,项目名称:CommerceStarterKit,代码行数:8,代码来源:BusinessFoundationGenericHandler.cs

示例4: Execute

        /// <summary>
        /// Executes the specified context.
        /// </summary>
        /// <param name="context">The context.</param>
        protected virtual void Execute(BusinessContext context)
        {
            if (context.Request.Parameters.Contains(OutgoingMessageQueuePlugin.AddToQueue))
            {
                PrimaryKeyId primaryKeyId = ResolvePrimaryKey(context);

                if (primaryKeyId != PrimaryKeyId.Empty)
                {
                    string referenceFieldName = GetReferenceFieldName(context.GetTargetMetaClassName());

                    if (!string.IsNullOrEmpty(referenceFieldName))
                    {
                        string source = context.Request.Parameters.GetValue<string>(OutgoingMessageQueuePlugin.SourceName, string.Empty);

                        PrimaryKeyId queuePk = AddMessageToOutgoingQueue(context.GetTargetMetaClassName(), referenceFieldName, primaryKeyId, source);
                    }
                }
            }
        }
开发者ID:0anion0,项目名称:IBN,代码行数:23,代码来源:OutgoingMessageQueuePlugin.cs

示例5: Execute

        /// <summary>
        /// Executes the specified context.
        /// </summary>
        /// <param name="context">The context.</param>
        public void Execute(BusinessContext context)
        {
            switch (context.GetMethod())
            {
                case RequestMethod.Load:
                    if (context.GetTargetPrimaryKeyId().HasValue)
                    {
                        EntityObject item = LoadEntityObject(context.GetTargetMetaClassName(), context.GetTargetPrimaryKeyId().Value);

                        if (item != null)
                        {
                            LoadResponse response = new LoadResponse(item);

                            context.SetResponse(response);
                        }
                    }
                    break;
                case RequestMethod.List:
                    {
                        // Filters Not Implemented
                        ListResponse response = context.Response as ListResponse;

                        if (response != null)
                        {
                            EntityObject[] items = LoadEntityObjects(context.GetTargetMetaClassName(), ((ListRequest)context.Request).Filters);

                            if (items.Length > 0)
                            {
                                List<EntityObject> newArray = new List<EntityObject>(response.EntityObjects.Length + items.Length);

                                newArray.AddRange(response.EntityObjects);
                                newArray.AddRange(items);

                                // TODO: Sorting Not Implemented

                                response.EntityObjects = newArray.ToArray();
                            }
                        }
                    }
                    break;
            }
        }
开发者ID:0anion0,项目名称:IBN,代码行数:46,代码来源:LocalDiskEntityObjectPlugin.cs

示例6: PreDeleteInsideTransaction

        /// <summary>
        /// Pres the delete inside transaction.
        /// </summary>
        /// <param name="context">The context.</param>
        protected override void PreDeleteInsideTransaction(BusinessContext context)
        {
            base.PreDeleteInsideTransaction(context);

            #region Remove references from IBN 4.7 objects
            SqlHelper.ExecuteNonQuery(SqlContext.Current, System.Data.CommandType.StoredProcedure,
                "bus_cls_ListObject_Delete",
                SqlHelper.SqlParameter("@ClassName", SqlDbType.NVarChar, 250, context.GetTargetMetaClassName()),
                SqlHelper.SqlParameter("@ObjectId", SqlDbType.VarChar, 36, context.GetTargetPrimaryKeyId().Value.ToString()));
            #endregion
        }
开发者ID:0anion0,项目名称:IBN,代码行数:15,代码来源:ListObjectRequestHandler.cs

示例7: Execute

        /// <summary>
        /// Executes the specified context.
        /// </summary>
        /// <param name="context">The context.</param>
        public virtual void Execute(BusinessContext context)
        {
            WorkflowInstanceEntity entityObject = (WorkflowInstanceEntity)BusinessManager.Load(context.GetTargetMetaClassName(), context.GetTargetPrimaryKeyId().Value);

            if (entityObject.OwnerDocumentId.HasValue)
            {
                Document.SetReadOnly(
                    entityObject.OwnerDocumentId.Value,
                    false);
            }

            // TODO: Add New Owner Here
        }
开发者ID:0anion0,项目名称:IBN,代码行数:17,代码来源:ResetBusinessProcessOwnerReadOnlyPlugin.cs

示例8: Execute

        /// <summary>
        /// Executes the specified context.
        /// </summary>
        /// <param name="context">The context.</param>
        public virtual void Execute(BusinessContext context)
        {
            WorkflowInstanceEntity entityObject = (WorkflowInstanceEntity)BusinessManager.Load(context.GetTargetMetaClassName(), context.GetTargetPrimaryKeyId().Value);

            if (entityObject.State == (int)BusinessProcessState.Closed &&
                entityObject.ExecutionResult == (int)BusinessProcessExecutionResult.Accepted)
            {
                if (entityObject.OwnerDocumentId.HasValue)
                {
                    Document.SetReadOnly(
                        entityObject.OwnerDocumentId.Value,
                        WorkflowParameters.GetOwnerReadOnly(entityObject));
                }

                // TODO: Add New Owner Here
            }
        }
开发者ID:0anion0,项目名称:IBN,代码行数:21,代码来源:SetBusinessProcessOwnerReadOnlyPlugin.cs

示例9: foreach

        /// <summary>
        /// Executes the specified context.
        /// </summary>
        /// <param name="context">The context.</param>
        void IPlugin.Execute(BusinessContext context)
        {
            if (context.GetMethod() == RequestMethod.Delete &&
                context.GetTargetPrimaryKeyId().HasValue)
            {
                MetaClass currentMetaClass = DataContext.Current.GetMetaClass(context.GetTargetMetaClassName());

                foreach (MetaField mf in currentMetaClass.FindReferencesTo())
                {
                    if (mf.Owner.IsBridge)
                    {
                        foreach(EntityObject entity in BusinessManager.List(mf.Owner.Name,
                            new FilterElement[] { FilterElement.EqualElement(mf.Name, context.GetTargetPrimaryKeyId().Value) }))
                        {
                            BusinessManager.Delete(entity);
                        }
                    }
                }
            }
        }
开发者ID:0anion0,项目名称:IBN,代码行数:24,代码来源:CleanupBridgeElementPlugin.cs

示例10: Execute

        /// <summary>
        /// Регестрирует все изменения над событиями в хранилище метаданных
        /// Данный plugin должен быть подписан на все post события производимые над всеми метаклассами событий
        /// В хранилище метаданных отслеживаться будет только события (в случаи наличия рекрсии только базовое зобытие рекрсии). 
        /// Например: 1. Если мы изменяем ресурсы события то в хранилище метаданных изменится версия связанного с данным ресурсом события.
        ///	2. Если мы создаем exception то обновиться метаданные только базовго события, а новые метаданные для exception созданы не будут.
        /// </summary>
        /// <param name="context">The context.</param>
        public void Execute(BusinessContext context)
        {
            bool needTracking = false;

            //Отмлеживаем только во время отсутствия прцесса синхронизации
            if (!CalendarEventSyncProvider.SyncSessionInProcess(Provider.ReplicaId))
            {
                //Регистрируем только вызовы BusinessObjectRequestHandler, все вызовы  перехватываемые  обработчиком
                //отслеживать не нужно.
                bool origRequestInvoked = context.Request.Parameters.GetValue<bool>(Mediachase.Ibn.Events.CustomMethods.EventHelper.FORCE_BASE_PARAM, false);
                if (origRequestInvoked)
                {
                    //перечисление методов
                    switch (context.GetMethod())
                    {
                        case RequestMethod.Create:
                        case RequestMethod.Delete:
                        case RequestMethod.Update:
                        case CalendarResourcesUpdateMethod.METHOD_NAME:
                        case ChangeTrackingMethod.METHOD_NAME:
                            needTracking = true;
                            break;

                    }
                }
            }

            if (needTracking)
            {
                PrimaryKeyId? eventId = null;
                //Пытаемся получить event pk из запроса или ответа
                if (context.GetTargetMetaClassName() == CalendarEventEntity.ClassName)
                {
                    eventId = context.Request.Target.PrimaryKeyId;
                    if (eventId == null)
                    {
                        eventId = ((CreateResponse)context.Response).PrimaryKeyId;
                    }
                }
                else if (context.GetTargetMetaClassName() == CalendarEventRecurrenceEntity.ClassName)
                {
                    eventId = (PrimaryKeyId?)context.Request.Target[CalendarEventRecurrenceEntity.FieldEventId];
                }
                else if (context.GetTargetMetaClassName() == CalendarEventResourceEntity.ClassName)
                {
                    eventId = (PrimaryKeyId?)context.Request.Target[CalendarEventResourceEntity.FieldEventId];
                }

                VirtualEventId vEventId = (VirtualEventId)eventId.Value;
                eventId = vEventId.RealEventId;
                //для события (виртуального или exception) необходимо произвести обновление только метаданных
                //родительского события
                if (vEventId.IsRecurrence)
                {
                    ChangeVersionMetadataItem(eventId);
                }
                else
                {
                    //только для методов касающихся события выполняются операции создания и удаления метаданных
                    if (context.GetTargetMetaClassName() == CalendarEventEntity.ClassName &&
                        context.Request.Method == RequestMethod.Create)
                    {
                        CreateMetadataItem(eventId.Value);
                    }
                    else if (context.GetTargetMetaClassName() == CalendarEventEntity.ClassName &&
                             context.Request.Method == RequestMethod.Delete)
                    {
                        MarkAsTombstoneMetadataItem(eventId);
                    }
                    else
                    {
                        ChangeVersionMetadataItem(eventId);
                    }
                }

            }
        }
开发者ID:0anion0,项目名称:IBN,代码行数:85,代码来源:CalendarEventChangeTracker.cs


注:本文中的BusinessContext.GetTargetMetaClassName方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。