public PassThroughContext ToPassthroughContext()
        {
            IOrganizationService organizationService = OrganizationServiceFactory.CreateOrganizationService(CallingUserId);
            var passThroughContext = new PassThroughContext(organizationService, TracingService);

            return(passThroughContext);
        }
예제 #2
0
        private void Initialize()
        {
            ThrowsException = ThrowsException.HasValue ? ThrowsException.Value : true;
            Stopwatch       = Stopwatch.StartNew();
            TracingService  = (ITracingService)ServiceProvider.GetService(typeof(ITracingService));
            if (TracingService == null)
            {
                throw new InvalidPluginExecutionException(TracingServiceMessage);
            }

            PluginExecutionContext = (IPluginExecutionContext)ServiceProvider.GetService(typeof(IPluginExecutionContext));
            if (PluginExecutionContext == null)
            {
                throw new InvalidPluginExecutionException(PluginExecutionContextMessage);
            }

            OrganizationServiceFactory = (IOrganizationServiceFactory)ServiceProvider.GetService(typeof(IOrganizationServiceFactory));
            if (OrganizationServiceFactory == null)
            {
                throw new InvalidPluginExecutionException(OrganizationServiceFactoryMessage);
            }

            OrganizationService = OrganizationServiceFactory.CreateOrganizationService(PluginExecutionContext.UserId);
            if (OrganizationService == null)
            {
                throw new InvalidPluginExecutionException(OrganizationServiceMessage);
            }

            ElevatedOrganizationService = OrganizationServiceFactory.CreateOrganizationService(null);
            if (ElevatedOrganizationService == null)
            {
                throw new InvalidPluginExecutionException(ImpersonatedOrganizationServiceMessage);
            }
        }
예제 #3
0
 internal protected PluginExecutionBundle(IServiceProvider serviceProvider)
 {
     ServiceProvider            = serviceProvider ?? throw new ArgumentNullException(nameof(serviceProvider));
     TracingService             = (ITracingService)serviceProvider.GetService(typeof(ITracingService));
     PluginExecutionContext     = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
     OrganizationServiceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
     OrganizationService        = OrganizationServiceFactory.CreateOrganizationService(PluginExecutionContext.UserId);
 }
 internal protected WorkflowActivityExecutionBundle(CodeActivityContext codeActivityContext)
 {
     CodeActivityContext        = codeActivityContext ?? throw new ArgumentNullException(nameof(codeActivityContext));
     TracingService             = codeActivityContext.GetExtension <ITracingService>();
     WorkflowContext            = codeActivityContext.GetExtension <IWorkflowContext>();
     OrganizationServiceFactory = codeActivityContext.GetExtension <IOrganizationServiceFactory>();
     OrganizationService        = OrganizationServiceFactory.CreateOrganizationService(WorkflowContext.UserId);
 }
예제 #5
0
        public PluginContext(IServiceProvider serviceProvider)
        {
            this.EnsureNotNull(serviceProvider);

            ServiceProvider = serviceProvider;

            ExecutionContext           = serviceProvider.GetService <IPluginExecutionContext>();
            OrganizationServiceFactory = serviceProvider.GetService <IOrganizationServiceFactory>();
            OrganizationService        = OrganizationServiceFactory.CreateOrganizationService(ExecutionContext.UserId);
            TracingService             = new Diagnostics.TracingServiceWrapper(serviceProvider.GetService <ITracingService>());

            OrganizationServiceContext = new Lazy <OrganizationServiceContext>(() =>
            {
                if (_disposed)
                {
                    throw new ObjectDisposedException(nameof(OrganizationServiceContext));
                }

                return(new OrganizationServiceContext(OrganizationService));
            });
        }
예제 #6
0
        private void Initialize()
        {
            ThrowsException = ThrowsException.HasValue ? ThrowsException.Value : true;

            Stopwatch = Stopwatch.StartNew();

            TracingService = CodeActivityContext.GetExtension <ITracingService>();
            if (TracingService == null)
            {
                throw new InvalidPluginExecutionException(TracingExtensionMessage);
            }

            WorkflowContext = CodeActivityContext.GetExtension <IWorkflowContext>();
            if (WorkflowContext == null)
            {
                throw new InvalidPluginExecutionException(WorkflowExtensionMessage);
            }

            OrganizationServiceFactory = CodeActivityContext.GetExtension <IOrganizationServiceFactory>();
            if (OrganizationServiceFactory == null)
            {
                throw new InvalidPluginExecutionException(OrganizationServiceFactoryExtensionMessage);
            }

            OrganizationService = OrganizationServiceFactory.CreateOrganizationService(WorkflowContext.UserId);
            if (OrganizationService == null)
            {
                throw new InvalidPluginExecutionException(OrganizationServiceMessage);
            }

            ElevatedOrganizationService = OrganizationServiceFactory.CreateOrganizationService(null);
            if (ElevatedOrganizationService == null)
            {
                throw new InvalidPluginExecutionException(ImpersonatedOrganizationServiceMessage);
            }
        }