Ejemplo n.º 1
0
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc();
            services.AddSingleton(provider => Configuration);
            services.AddSingleton <IHttpContextAccessor, HttpContextAccessor>();
            services.AddSingleton <IActionContextAccessor, ActionContextAccessor>();
            services.AddSingleton <IUrlHelperFactory, UrlHelperFactory>();
            services.AddSingleton <IProvideUserSettings, UserSettings>();
            services.AddTransient <IApiClient, ApiClient>();

            services.AddHangfire(c => c.UseMemoryStorage());
            DomainModule.RegisterDatabases(services, new UserSettings());
            RegisterRenderers(services);

            if (UseOffline)
            {
                DatabaseClientModule.RegisterDatabases(services, new UserSettings());

                services.AddBrighter()
                .AsyncHandlersFromAssemblies(
                    typeof(Startup).GetTypeInfo().Assembly,
                    typeof(DomainModule).GetTypeInfo().Assembly);
                services.AddDarker()
                .AddHandlersFromAssemblies(
                    typeof(DatabaseClientModule).GetTypeInfo().Assembly,
                    typeof(DomainModule).GetTypeInfo().Assembly
                    );

                Mapper.Initialize(c =>
                {
                    c.AddProfile(new MappingProfile());
                    c.AddProfile(new DatabaseClientMappings());
                }
                                  );
            }
            else
            {
                services.AddBrighter()
                .AsyncHandlersFromAssemblies(
                    typeof(Startup).GetTypeInfo().Assembly,
                    typeof(ApiClientModule).GetTypeInfo().Assembly,
                    typeof(DomainModule).GetTypeInfo().Assembly);
                services.AddDarker()
                .AddHandlersFromAssemblies(
                    typeof(DomainModule).GetTypeInfo().Assembly,
                    typeof(ApiClientModule).GetTypeInfo().Assembly);

                Mapper.Initialize(c => c.AddProfile(new MappingProfile()));
            }

            Mapper.AssertConfigurationIsValid();
        }