Esempio n. 1
0
        public static IKernel AddCodeActivityServices(this IKernel services, CodeActivityContext codeActivityContext)
        {
            Guard.That(() => codeActivityContext).IsNotNull();
            Guard.That(() => services).IsNotNull();

            services.Bind <CodeActivityContext>().ToConstant(codeActivityContext).InSingletonScope();

            IWorkflowContext executionContext = codeActivityContext.GetExtension <IWorkflowContext>();

            services.Bind <IWorkflowContext>().ToConstant(executionContext).InTransientScope();

            ITracingService tracingService = codeActivityContext.GetExtension <ITracingService>();

            services.Bind <ITracingService>().ToConstant(tracingService).InTransientScope();

            IOrganizationServiceFactory organizationServiceFactory = codeActivityContext.GetExtension <IOrganizationServiceFactory>();

            services.Bind <IOrganizationServiceFactory>().ToConstant(organizationServiceFactory).InTransientScope();

            services.Bind <IOrganizationService>().ToMethod(context =>
            {
                IOrganizationServiceFactory serviceFactory = context.Kernel.Get <IOrganizationServiceFactory>();
                return(serviceFactory.CreateOrganizationService(null));
            });

            services.Bind <ICodeActivityExecutionContextAccessor>().To <CodeActivityExecutionContextAccessor>().InTransientScope();

            services.Bind <User>().ToMethod(context =>
            {
                ICodeActivityExecutionContextAccessor executionContextAccessor = context.Kernel.Get <ICodeActivityExecutionContextAccessor>();
                return(executionContextAccessor.User);
            });

            return(services);
        }
Esempio n. 2
0
        protected override void Execute(CodeActivityContext context)
        {
            IKernel services = _fakeServices;

            //Fake services were not provided so add actual implemnetations
            if (services == null)
            {
                services = new StandardKernel();

                //Add mockable services here
                services.AddLogging();
            }

            //No need to mock these since they are taken care by the mock framework
            services.AddCoreServices()
            .AddCodeActivityServices(context)
            .AddCodeActivityPipelineServices();

            ICodeActivityExecutionContextAccessor executionContextAccessor = services.Get <ICodeActivityExecutionContextAccessor>();

            try
            {
                CodeActivityExecutionContextAccessor.ValidateExecution(executionContextAccessor, GetType());
                Execute(services);
            }
            catch (Exception ex)
            {
                OnError(ex, services);
            }
        }
Esempio n. 3
0
        public virtual void OnError(Exception ex, IKernel services)
        {
            ICodeActivityExecutionContextAccessor executionContextAccessor = services.Get <ICodeActivityExecutionContextAccessor>();

            executionContextAccessor.HandleException(ex);
        }
 public static void ValidateExecution(ICodeActivityExecutionContextAccessor executionContextAccessor, Type implementationType)
 {
 }