Exemplo n.º 1
0
        private void SetError(CodeActivityContext context, TracingServiceLogWriter logWriter, string message)
        {
            logWriter.Log(Severity.Error, Tag, message);

            this.Error.Set(context, message);
            this.IsSuccessful.Set(context, false);
        }
Exemplo n.º 2
0
        /// <inheritdoc/>
        protected override void Execute(CodeActivityContext context)
        {
            if (context is null)
            {
                throw new ArgumentNullException(nameof(context));
            }

            var tracingSvc        = context.GetExtension <ITracingService>();
            var workflowContext   = context.GetExtension <IWorkflowContext>();
            var serviceFactory    = context.GetExtension <IOrganizationServiceFactory>();
            var orgSvc            = serviceFactory.CreateOrganizationService(workflowContext.UserId);
            var repositoryFactory = new RepositoryFactory(orgSvc);
            var logWriter         = new TracingServiceLogWriter(tracingSvc, true);

            logWriter.Log(Severity.Info, Tag, $"Executing integrated workflow activity.");

            try
            {
                var oDataClient = this.GetODataClient(context, workflowContext, logWriter);
                this.ExecuteWorkflowActivity(context, workflowContext, oDataClient, logWriter, repositoryFactory);
            }
            catch (InvalidPluginExecutionException ex)
            {
                this.SetError(context, logWriter, ex.Message);
            }
            catch (AggregateException ex) when(ex.InnerException is WebException)
            {
                this.SetError(context, logWriter, ex.InnerException.Message);
            }
        }
Exemplo n.º 3
0
        /// <inheritdoc/>
        public void Execute(IServiceProvider serviceProvider)
        {
            var tracingSvc        = (ITracingService)serviceProvider.GetService(typeof(ITracingService));
            var context           = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
            var serviceFactory    = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
            var orgSvc            = serviceFactory.CreateOrganizationService(Guid.Empty);
            var repositoryFactory = new RepositoryFactory(orgSvc);
            var logWriter         = new TracingServiceLogWriter(tracingSvc, true);

            this.Execute(context, orgSvc, logWriter, repositoryFactory);
        }
Exemplo n.º 4
0
        /// <inheritdoc/>
        protected override void Execute(CodeActivityContext context)
        {
            if (context is null)
            {
                throw new System.ArgumentNullException(nameof(context));
            }

            var tracingSvc        = context.GetExtension <ITracingService>();
            var workflowContext   = context.GetExtension <IWorkflowContext>();
            var serviceFactory    = context.GetExtension <IOrganizationServiceFactory>();
            var orgSvc            = serviceFactory.CreateOrganizationService(workflowContext.UserId);
            var repositoryFactory = context.GetExtension <IRepositoryFactory>() ?? new RepositoryFactory(orgSvc);
            var logWriter         = new TracingServiceLogWriter(tracingSvc, true);

            this.ExecuteWorkflowActivity(context, workflowContext, orgSvc, logWriter, repositoryFactory);
        }
Exemplo n.º 5
0
 private IODataClient GetODataClient(CodeActivityContext context, IWorkflowContext workflowContext, TracingServiceLogWriter logWriter)
 {
     return(context.GetExtension <IODataClient>() ?? GetNewODataClient(
                new Uri(this.TargetInstanceUrl.GetRequired(context, nameof(this.TargetInstanceUrl))),
                context,
                workflowContext,
                logWriter));
 }
        /// <inheritdoc/>
        protected override void Execute(IPluginExecutionContext context, IOrganizationService orgSvc, TracingServiceLogWriter logWriter, RepositoryFactory repositoryFactory)
        {
            logWriter.Log(Severity.Info, Tag, "Injecting secure configuration into shared variables.");

            if (string.IsNullOrEmpty(this.SecureConfig))
            {
                throw new Exception("The secure configuration for the plugin step is empty.");
            }

            context.SharedVariables.Add(SharedVariablesKeySecureConfig, this.SecureConfig);
        }
Exemplo n.º 7
0
 /// <summary>
 /// Execute the plugin.
 /// </summary>
 /// <param name="context">The plugin execution context.</param>
 /// <param name="orgSvc">The organization service.</param>
 /// <param name="logWriter">The log writer.</param>
 /// <param name="repositoryFactory">The repository factory.</param>
 protected abstract void Execute(IPluginExecutionContext context, IOrganizationService orgSvc, TracingServiceLogWriter logWriter, RepositoryFactory repositoryFactory);