protected override void Execute(CodeActivityContext executionContext)
        {
            var serviceFactory = executionContext.GetExtension <IOrganizationServiceFactory>();
            var tracingService = executionContext.GetExtension <ITracingService>();

            WorkflowContext     = executionContext.GetExtension <IWorkflowContext>();
            OrganizationService = serviceFactory.CreateOrganizationService(WorkflowContext.UserId);

            try
            {
                using (DataAccessLayerFactory = new DataAccessLayerFactory(OrganizationService, tracingService))
                {
                    CustomTracingService = DataAccessLayerFactory.GetTracingService();

                    PostExecute(executionContext);
                }
            }
            catch (FaultException <OrganizationServiceFault> ex)
            {
                throw new InvalidPluginExecutionException("An error occurred in the UpdateActivities plug-in.", ex);
            }
            catch (Exception ex)
            {
                CustomTracingService.Trace("FollowupPlugin: {0}", ex.ToString());
                throw;
            }
        }
Exemplo n.º 2
0
        public void Execute(IServiceProvider serviceProvider)
        {
            var tracingService = (ITracingService)serviceProvider.GetService(typeof(ITracingService));

            PluginContext = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));

            if (!PluginContext.InputParameters.Contains("Target") || !(PluginContext.InputParameters["Target"] is Entity))
            {
                return;
            }

            Entity = (Entity)PluginContext.InputParameters["Target"];
            if (Entity.LogicalName != ExpectedEntityLogicalName)
            {
                return;
            }
            IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));

            OrganizationService    = serviceFactory.CreateOrganizationService(PluginContext.UserId);
            DataAccessLayerFactory = new DataAccessLayerFactory(OrganizationService, tracingService);
            CustomTracingService   = DataAccessLayerFactory.GetTracingService();
            try
            {
                PostExecute(serviceProvider);
            }
            catch (FaultException <OrganizationServiceFault> ex)
            {
                throw new InvalidPluginExecutionException("An error occurred in this plug-in.", ex);
            }
            catch (Exception ex)
            {
                CustomTracingService.Trace("Plugin Exception: {0}", ex.ToString());
                throw;
            }
        }