public async Task Execute(ConsumeContext <ICreateUserCommand> context) { var builder = new RoutingSlipBuilder(NewId.NextGuid()); var createUserCommand = context.Message; builder.AddActivity(UserServiceConstants.ActivityCreateAdUser, _activityConfigurator.GetActivityExecuteUri(context, typeof(ICreateActiveDirectoryUserActivity)), _activityArgumentsMapper.MapActiveDirectoryUserArguments(createUserCommand)); builder.AddActivity(UserServiceConstants.ActivityCreateIsUser, _activityConfigurator.GetActivityExecuteUri(context, typeof(ICreateIdentityServerUserActivity)), _activityArgumentsMapper.MapIdentityServerUserArguments(createUserCommand)); builder.AddActivity(UserServiceConstants.ActivityUserCreated, _activityConfigurator.GetActivityExecuteUri(context, typeof(IUserCreatedActivity)), _activityArgumentsMapper.MapUserCreatedArguments(createUserCommand)); builder.AddSubscription(UserServiceConstants.RoutingSlipEventObserverUri, RoutingSlipEvents.Completed | RoutingSlipEvents.Faulted | RoutingSlipEvents.ActivityCompleted | RoutingSlipEvents.ActivityFaulted | RoutingSlipEvents.ActivityCompensated | RoutingSlipEvents.ActivityCompensationFailed); var routingSlip = builder.Build(); await context.Send <IRoutingSlipStarted>(UserServiceConstants.RoutingSlipUserStartedEventUri, new { builder.TrackingNumber, CreateTimestamp = DateTime.UtcNow, Arguments = context.Message, WorkflowActivityType = WorkflowActivityType.CreateUser.ToString() }); await context.Execute(routingSlip); }
public async Task Execute(ConsumeContext <ICreateCompanyCommand> context) { var builder = new RoutingSlipBuilder(NewId.NextGuid()); var createCompanyCommand = context.Message; builder.AddActivity(CompanyServiceConstants.ActivityCreateAdCompany, _activityConfigurator.GetActivityExecuteUri(context, typeof(ICreateActiveDirectoryComapnyActivity)), _activityCompanyArgumentsMapper.MapActiveDirectoryCompanyArguments(createCompanyCommand)); builder.AddActivity(CompanyServiceConstants.ActivityCreateDatabaseCompany, _activityConfigurator.GetActivityExecuteUri(context, typeof(ICreateDatabaseCompanyActivity)), _activityCompanyArgumentsMapper.MapDatabaseCompanyArguments(createCompanyCommand)); builder.AddActivity(CompanyServiceConstants.ActivityAssignCatalog, _activityConfigurator.GetActivityExecuteUri(context, typeof(IAssignCatalogActivity)), _activityCompanyArgumentsMapper.MapAssignCatalogArguments(createCompanyCommand)); if (createCompanyCommand.Company.Type == CompanyType.Reseller) { builder.AddActivity(CompanyServiceConstants.ActivityAddCallbackRedirectUri, _activityConfigurator.GetActivityExecuteUri(context, typeof(IAddCallbackRedirectUriActivity)), new { Uri = createCompanyCommand.Company.ControlPanelSiteUrl, createCompanyCommand.ClientDbId }); } builder.AddActivity(UserServiceConstants.ActivityCreateAdUser, _activityConfigurator.GetActivityExecuteUri(context, typeof(ICreateActiveDirectoryUserActivity)), _activityUserArgumentsMapper.MapActiveDirectoryUserArguments(createCompanyCommand)); builder.AddActivity(UserServiceConstants.ActivityCreateIsUser, _activityConfigurator.GetActivityExecuteUri(context, typeof(ICreateIdentityServerUserActivity)), _activityUserArgumentsMapper.MapIdentityServerUserArguments(createCompanyCommand)); builder.AddActivity(CompanyServiceConstants.ActivityCompanyCreated, _activityConfigurator.GetActivityExecuteUri(context, typeof(ICompanyCreatedActivity)), _activityCompanyArgumentsMapper.MapCreatedComapnySendEmailArguments(createCompanyCommand)); builder.AddSubscription(CompanyServiceConstants.RoutingSlipEventObserverUri, RoutingSlipEvents.Completed | RoutingSlipEvents.Faulted | RoutingSlipEvents.ActivityCompleted | RoutingSlipEvents.ActivityFaulted | RoutingSlipEvents.ActivityCompensated | RoutingSlipEvents.ActivityCompensationFailed); var routingSlip = builder.Build(); await context.Send <IRoutingSlipStarted>(CompanyServiceConstants.RoutingSlipCompanyStartedEventUri, new { builder.TrackingNumber, CreateTimestamp = DateTime.UtcNow, Arguments = context.Message, WorkflowActivityType = WorkflowActivityType.CreateCompany.ToString() }); await context.Execute(routingSlip); }