private static ICommandDispatcher Configure(bool auditRootOnly) { // we use an enricher that simply updates a counter each time enrichment occurs // as enrichment only occurs when the context is created this will start at 0 when the console auditing example is first run and // will increment by 1 on each subsequent run IReadOnlyDictionary <string, object> Enricher(IReadOnlyDictionary <string, object> existing) => new Dictionary <string, object> { { "Counter", Interlocked.Increment(ref _counter) } }; ServiceCollection serviceCollection = new ServiceCollection(); IMicrosoftDependencyInjectionCommandingResolver dependencyResolver = new MicrosoftDependencyInjectionCommandingResolver(serviceCollection); Options options = new Options { Reset = true, // we reset the registry because we allow repeat runs, in a normal app this isn't required Enrichers = new[] { new FunctionWrapperCommandDispatchContextEnricher(Enricher) } }; dependencyResolver.UseCommanding(options) .Register <NestingCommandHandler>() .Register <OutputWorldToConsoleCommandHandler>() .Register <OutputBigglesToConsoleCommandHandler>(); dependencyResolver .UsePreDispatchCommandingAuditor <ConsolePreDispatchAuditor>(auditRootOnly) .UsePostDispatchCommandingAuditor <ConsolePostDispatchAuditor>(auditRootOnly) .UseExecutionCommandingAuditor <ConsoleExecutionAuditor>(auditRootOnly); dependencyResolver.ServiceProvider = serviceCollection.BuildServiceProvider(); return(dependencyResolver.ServiceProvider.GetService <ICommandDispatcher>()); }
static GetStoreProduct() { IServiceCollection serviceCollection = new ServiceCollection(); MicrosoftDependencyInjectionCommandingResolver resolver = new MicrosoftDependencyInjectionCommandingResolver(serviceCollection); ICommandRegistry registry = resolver.UseCommanding(); serviceCollection.UseCoreCommanding(resolver); serviceCollection.UseStore(() => ServiceProvider, registry, ApplicationModeEnum.Server); serviceCollection.AddTransient((sp) => Logger.Value); ServiceProvider = resolver.ServiceProvider = serviceCollection.BuildServiceProvider(); }
private static ICommandDispatcher Configure(Stack <object> stack) { ServiceCollection serviceCollection = new ServiceCollection(); IMicrosoftDependencyInjectionCommandingResolver dependencyResolver = new MicrosoftDependencyInjectionCommandingResolver(serviceCollection); Options options = new Options { Reset = true // we reset the registry because we allow repeat runs, in a normal app this isn't required }; dependencyResolver.UseCommanding(options) .Register <OutputToConsoleCommand, CountResult>(() => new StackDispatcher(stack)); dependencyResolver.ServiceProvider = serviceCollection.BuildServiceProvider(); return(dependencyResolver.ServiceProvider.GetService <ICommandDispatcher>()); }
private static ICommandDispatcher Configure() { ServiceCollection serviceCollection = new ServiceCollection(); Options options = new Options { Reset = true // we reset the registry because we allow repeat runs, in a normal app this isn't required }; IMicrosoftDependencyInjectionCommandingResolver dependencyResolver = new MicrosoftDependencyInjectionCommandingResolver(serviceCollection); dependencyResolver.UseCommanding(options) .Register <CommandWithoutResultHandler>() .Register <CancellableCommandWithoutResultHandler>(); dependencyResolver.ServiceProvider = serviceCollection.BuildServiceProvider(); return(dependencyResolver.ServiceProvider.GetService <ICommandDispatcher>()); }
// This method gets called by the runtime. Use this method to add services to the container. public IServiceProvider ConfigureServices(IServiceCollection services) { services.AddMvc(c => { c.Filters.Add <AssignAuthenticatedUserIdActionFilter>(); c.AddAuthenticatedUserIdAwareBodyModelBinderProvider(); }).AddFluentValidation(); services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new Info { Title = "Online Store API", Version = "v1" }); c.SchemaFilter <SwaggerAuthenticatedUserIdFilter>(); c.OperationFilter <SwaggerAuthenticatedUserIdOperationFilter>(); }); TelemetryClient client = new TelemetryClient(); CommandingDependencyResolver = new MicrosoftDependencyInjectionCommandingResolver(services); ICommandRegistry registry = CommandingDependencyResolver.UseCommanding(new Options { CommandExecutionExceptionHandler = typeof(CommandExecutionExceptionHandler) }); CommandingDependencyResolver.UseHttpCommanding(); services .UseCoreCommanding(CommandingDependencyResolver) .UseShoppingCart(registry) .UseStore(() => ServiceProvider, registry, ApplicationModeEnum.Client) .UseCheckout(registry); ServiceProvider = services.BuildServiceProvider(); return(ServiceProvider); }