Exemple #1
0
        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>());
        }
Exemple #2
0
        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();
        }
Exemple #3
0
        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);
        }