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); }
/// <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); } }
/// <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); }
/// <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); }
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); }
/// <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);