static IDictionary <string, object> SampleCodeActivityExecute(CrmServiceClient client, Guid userId) { var myActivity = new TestActivity(); var context = new CodeActivityContextFake(); context = new CodeActivityContextFake(); context.InitiatingUserId = userId; context.UserId = userId; context.PrimaryEntityName = "opportunity"; context.PrimaryEntityId = new Guid("2A2B61B9-1234-ABCD-7891-B3223BFC9624"); var inputs = new Dictionary <string, object>(); inputs.Add(nameof(myActivity.StringInputOutput), "some string input"); inputs.Add(nameof(myActivity.IntInputOutput), 858); inputs.Add(nameof(myActivity.LookupInputOutput), new EntityReference("account", new Guid())); inputs.Add(nameof(myActivity.BoolInputOutput), true); inputs.Add(nameof(myActivity.DateInputOutput), new DateTime(2018, 9, 12)); inputs.Add(nameof(myActivity.DecimalInputOutput), (decimal)10.23); inputs.Add(nameof(myActivity.MoneyInputOutput), new Money(10)); return(CodeActivityExecutor.Execute(myActivity, client, context, inputs)); }
public static IDictionary <string, object> Execute( CodeActivity workflow , CrmServiceClient service, CodeActivityContextFake context, Dictionary <string, object> inputs , ITracingService tracingService = null , IServiceEndpointNotificationService notificationService = null ) { WorkflowInvoker invoker = new WorkflowInvoker(workflow); invoker.Extensions.Add <IOrganizationService>(() => service); invoker.Extensions.Add <IWorkflowContext>(() => context); if (tracingService != null) { invoker.Extensions.Add <ITracingService>(() => tracingService); } else { invoker.Extensions.Add <ITracingService>(() => new TracingServiceFake()); } ServiceFactoryFake serviceFactory = new ServiceFactoryFake(); serviceFactory.service = (IOrganizationService)service?.OrganizationServiceProxy; invoker.Extensions.Add <IOrganizationServiceFactory>(() => serviceFactory); if (notificationService != null) { invoker.Extensions.Add <IServiceEndpointNotificationService>(() => notificationService); } else { invoker.Extensions.Add <IServiceEndpointNotificationService>(() => new ServiceEndpointNotificationServiceFake()); } return(invoker.Invoke(inputs)); }