Ejemplo n.º 1
0
        public void ConfigureServices(IServiceCollection services)
        {
            services.Configure <StorageContextOptions>(options =>
            {
                options.ConnectionString   = this.configuration.GetConnectionString("Default");
                options.MigrationsAssembly = typeof(DesignTimeStorageContextFactory).GetTypeInfo().Assembly.FullName;
            }
                                                       );

            services.Configure <MasterDataSettings>(options =>
            {
                options.Endpoint      = this.configuration.GetSection("DanLiris").GetValue <string>("MasterDataEndpoint");
                options.TokenEndpoint = this.configuration.GetSection("DanLiris").GetValue <string>("TokenEndpoint");
            });

            services.AddExtCore(this.extensionsPath, includingSubpaths: true);

            services.AddMediatR();

            DesignTimeStorageContextFactory.Initialize(services.BuildServiceProvider());

            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new Swashbuckle.AspNetCore.Swagger.Info {
                    Title = "Weaving API", Version = "v1"
                });
            });
        }
Ejemplo n.º 2
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddExtCore(ExtensionsPath, Configuration["Extensions:IncludingSubpaths"].ToLower() == true.ToString());
            services.Configure <StorageContextOptions>(options =>
            {
                options.ConnectionString   = Configuration.GetConnectionString("Default");
                options.MigrationsAssembly = typeof(DesignTimeStorageContextFactory).GetTypeInfo().Assembly.FullName;
            });

            services.Configure <FormOptions>(options =>
            {
                options.MultipartBodyLengthLimit = 1474560000;
            });

            services.AddMvc()
            .SetCompatibilityVersion(CompatibilityVersion.Version_2_1)
            .AddJsonOptions(options => options.SerializerSettings.ContractResolver = new DefaultContractResolver());
            services.AddSingleton <IHttpContextAccessor, HttpContextAccessor>();
            services.AddSingleton <IActionContextAccessor, ActionContextAccessor>();
            services.AddSingleton <IConfiguration>(Configuration);
            services.AddSingleton <IUrlHelper>(x =>
            {
                var actionContext = x.GetRequiredService <IActionContextAccessor>().ActionContext;
                var factory       = x.GetRequiredService <IUrlHelperFactory>();
                return(factory.GetUrlHelper(actionContext));
            });

            var sp = services.BuildServiceProvider();

            DesignTimeStorageContextFactory.Initialize(sp);
            DesignTimeStorageContextFactory.StorageContext.Database.Migrate();

            // Import games from older version
            ImportInitialGames(sp);
        }
Ejemplo n.º 3
0
        public void Execute(IServiceCollection serviceCollection, IServiceProvider serviceProvider)
        {
            var storage = serviceProvider.GetService <IOptions <StorageContextOptions> >();

            DesignTimeStorageContextFactory.Initialize(serviceCollection.BuildServiceProvider());
            serviceCollection.AddScoped(typeof(IStorageContext), typeof(ApplicationDbContext));
            serviceCollection.AddDbContextPool <ApplicationDbContext>(options => options.UseNpgsql(storage.Value.ConnectionString, b => b.MigrationsAssembly(storage?.Value?.MigrationsAssembly ?? typeof(DesignTimeStorageContextFactory).GetTypeInfo().Assembly.FullName)));
            serviceCollection.AddIdentity <ApplicationUser, ApplicationRole>()
            .AddEntityFrameworkStores <ApplicationDbContext>()
            .AddDefaultTokenProviders();
        }
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddExtCore(this._extensionsPath);
            services.Configure <StorageContextOptions>(options =>
            {
                options.ConnectionString   = this._configuration.GetConnectionString("Default");
                options.MigrationsAssembly = typeof(DesignTimeStorageContextFactory).GetTypeInfo().Assembly.FullName;
            }
                                                       );

            DesignTimeStorageContextFactory.Initialize(services.BuildServiceProvider());
        }
Ejemplo n.º 5
0
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddExtCore(this._extensionsPath);

            //JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Clear();

            services.AddAuthentication(options =>
            {
                options.DefaultScheme          = "Cookies";
                options.DefaultChallengeScheme = "oidc";
            })
            .AddCookie("Cookies")
            .AddOpenIdConnect("oidc", options =>
            {
                options.Authority            = "http://localhost:5000";
                options.RequireHttpsMetadata = false;

                options.ClientId             = "ework-admin-dev";
                options.RequireHttpsMetadata = false;

                options.ClientSecret = "secret";
                options.ResponseType = "code id_token";

                options.SaveTokens = true;
                options.GetClaimsFromUserInfoEndpoint = true;

                options.Scope.Add("ework");
                options.Scope.Add("offline_access");

                options.ClaimActions.MapJsonKey("website", "website");
            });

            services.Configure <StorageContextOptions>(options =>
            {
                options.ConnectionString   = this._configuration.GetConnectionString("SQlServer");
                options.MigrationsAssembly = typeof(DesignTimeStorageContextFactory).GetTypeInfo().Assembly.FullName;
            }
                                                       );

            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new Swashbuckle.AspNetCore.Swagger.Info {
                    Title = "My API", Version = "v1"
                });
            });

            DesignTimeStorageContextFactory.Initialize(services.BuildServiceProvider());
        }
Ejemplo n.º 6
0
        public void Execute(IServiceCollection serviceCollection, IServiceProvider serviceProvider)
        {
            var storage = serviceProvider.GetService <IOptions <StorageContextOptions> >();

            DesignTimeStorageContextFactory.Initialize(serviceCollection.BuildServiceProvider());
            serviceCollection.AddScoped(typeof(IStorageContext), typeof(ApplicationDbContext));
            serviceCollection.AddDbContextPool <ApplicationDbContext>(options =>
            {
                options.UseSqlServer(storage.Value.ConnectionString,
                                     b =>
                {
                    b.EnableRetryOnFailure(5, TimeSpan.FromSeconds(10), null);
                    b.MigrationsAssembly(storage?.Value?.MigrationsAssembly ?? typeof(DesignTimeStorageContextFactory).GetTypeInfo().Assembly.FullName);
                });
            });
            serviceCollection.AddIdentity <ApplicationUser, ApplicationRole>()
            .AddEntityFrameworkStores <ApplicationDbContext>()
            .AddDefaultTokenProviders();
        }
Ejemplo n.º 7
0
        // This method gets called by the runtime. Use this method to add services to the container.
        // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
        public void ConfigureServices(IServiceCollection services)
        {
            IConfigurationBuilder configurationBuilder = new ConfigurationBuilder()
                                                         .SetBasePath(env.ContentRootPath + "/../Benriya.App")
                                                         .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);

            services.AddMapper();
            services.AddScoped <IRequestServices, RequestServices>();
            services.AddExtCore(extensionsPath, Configuration["Extensions:IncludingSubpaths"] == true.ToString());
            //services.AddDbContext<ApplicationDbContext>(options =>
            //  options.UseNpgsql(configurationBuilder.Build().GetConnectionString("Default")));
            var db_conector = configurationBuilder.Build().GetConnectionString("Default");

            //services.Configure<StorageContextOptions>(options =>
            //{
            //    options.ConnectionString = conect;
            //    options.MigrationsAssembly = Assembly.GetExecutingAssembly().FullName;
            //});
            services.AddScoped <IUserServices, UserServices>();
            services.AddSingleton <IRequestServices, RequestServices>();
            services.AddControllersWithViews();
            services.AddDbContext <ApplicationDbContext>(options =>
            {
                if (this.env.IsDevelopment())
                {
                    options.EnableSensitiveDataLogging();
                }
                //options.UseLazyLoadingProxies(false);
                options.UseNpgsql(db_conector, (m) => { m.MigrationsAssembly(Assembly.GetExecutingAssembly().FullName); }); //(typeof(ApplicationDbContext).Assembly.FullName); }); // ("Benriya.Data.Migrator"); });
            });
            services.AddScoped(typeof(IStorageContext), typeof(ApplicationDbContext));

#pragma warning disable ASP0000 // Do not call 'IServiceCollection.BuildServiceProvider' in 'ConfigureServices'
            DesignTimeStorageContextFactory.Initialize(services.BuildServiceProvider());
#pragma warning restore ASP0000 // Do not call 'IServiceCollection.BuildServiceProvider' in 'ConfigureServices'
        }
Ejemplo n.º 8
0
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddExtCore(this._extensionsPath);

            //JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Clear();

            services.AddAuthentication(options =>
            {
                options.DefaultScheme          = "Cookies";
                options.DefaultChallengeScheme = "oidc";
            })

            .AddCookie("Cookies")
            .AddOpenIdConnect("oidc", options =>
            {
                options.Authority            = "http://localhost:5000";
                options.RequireHttpsMetadata = false;

                options.ClientId     = "ework-admin-dev";
                options.ClientSecret = "secret";
                options.ResponseType = "code id_token";

                options.SaveTokens = true;
                options.GetClaimsFromUserInfoEndpoint = true;

                options.Scope.Add("ework");
                options.Scope.Add("offline_access");

                options.ClaimActions.MapJsonKey("FullName", "FullName");
                options.ClaimActions.MapJsonKey("EmployeeId", "EmployeeId");
            })
            .AddIdentityServerAuthentication(options =>
            {
                options.Authority            = _configuration.GetValue <string>("IdentityServerAuthorizeUrl");
                options.RequireHttpsMetadata = false;

                options.ApiSecret = "secret";
                options.ApiName   = "ework";
            });



            services.Configure <StorageContextOptions>(options =>
            {
                options.ConnectionString   = this._configuration.GetConnectionString("Default");
                options.MigrationsAssembly = typeof(DesignTimeStorageContextFactory).GetTypeInfo().Assembly.FullName;
            }
                                                       );

            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new Swashbuckle.AspNetCore.Swagger.Info {
                    Title = "My API", Version = "v1"
                });

                c.AddSecurityDefinition("oauth2", new Swashbuckle.AspNetCore.Swagger.OAuth2Scheme
                {
                    Flow             = "implicit",
                    AuthorizationUrl = "http://localhost:5000/connect/authorize",
                    Scopes           = new Dictionary <string, string> {
                        { "ework", "MoonlayEwork API" }
                    }
                });

                c.OperationFilter <Backend.WebApp.Swaggers.AuthorizeCheckOperationFilter>();
            });

            DesignTimeStorageContextFactory.Initialize(services.BuildServiceProvider());
        }
        public void ConfigureServices(IServiceCollection services)
        {
            RegisterMasterDataSettings();
            RegisterPurchasingDataSettings();
            RegisterSalesDataSettings();
            services.AddScoped <IIdentityService, IdentityService>();

            services.AddSingleton <IMemoryCacheManager, MemoryCacheManager>()
            .AddSingleton <ICoreClient, CoreClient>()
            .AddSingleton <IPurchasingClient, PurchasingClient>()
            .AddSingleton <IHttpClientService, HttpClientService>();
            //services.Configure<MasterDataSettings>(options =>
            //{
            //    options.Endpoint = this.configuration.GetSection("DanLirisSettings").GetValue<string>("MasterDataEndpoint");
            //    options.TokenEndpoint = this.configuration.GetSection("DanLirisSettings").GetValue<string>("TokenEndpoint");
            //});

            services.AddExtCore(this.extensionsPath, includingSubpaths: true);

            services.AddMediatR();

            #region Authentication
            string Secret            = configuration.GetValue <string>(Constant.SECRET) ?? configuration[Constant.SECRET];
            SymmetricSecurityKey Key = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(Secret));

            services.AddAuthentication(IdentityServerAuthenticationDefaults.AuthenticationScheme)
            .AddJwtBearer(options =>
            {
                options.TokenValidationParameters = new TokenValidationParameters
                {
                    ValidateAudience = false,
                    ValidateIssuer   = false,
                    ValidateLifetime = false,
                    IssuerSigningKey = Key
                };
            });
            #endregion

            services.Configure <StorageContextOptions>(options =>
            {
                options.ConnectionString   = this.configuration.GetConnectionString("Default");
                options.MigrationsAssembly = typeof(DesignTimeStorageContextFactory).GetTypeInfo().Assembly.FullName;
            }
                                                       );

            DesignTimeStorageContextFactory.Initialize(services.BuildServiceProvider());

            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new Swashbuckle.AspNetCore.Swagger.Info {
                    Title = "Garment API", Version = "v1"
                });
                c.AddSecurityDefinition("Bearer", new ApiKeyScheme {
                    In = "header", Description = "Please enter JWT with Bearer into field", Name = "Authorization", Type = "apiKey"
                });
                c.AddSecurityRequirement(new Dictionary <string, IEnumerable <string> >
                {
                    { "Bearer", Enumerable.Empty <string>() },
                });

                c.CustomSchemaIds(i => i.FullName);
            });



            #region CORS

            services.AddCors(options => options.AddPolicy(GARMENT_POLICY, builder =>
            {
                builder.AllowAnyOrigin()
                .AllowAnyMethod()
                .AllowAnyHeader()
                .WithExposedHeaders(EXPOSED_HEADERS);
            }));

            #endregion

            #region API

            services
            .AddAuthorization();

            #endregion
        }