Esempio n. 1
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllers();

            // Identity
            services.AddDbContext <SecurityContext>(options =>
                                                    options.UseNpgsql(Configuration.GetConnectionString("Default"),
                                                                      x => x.MigrationsHistoryTable("__MigrationsHistory", SecurityContext.DEFAULT_SCHEMA)));

            IdentityHelper.ConfigureService(services);

            // Helpers
            AuthenticationHelper.ConfigureService(services, Configuration["JwtSecurityToken:Issuer"], Configuration["JwtSecurityToken:Audience"], Configuration["JwtSecurityToken:Key"]);
            CorsHelper.ConfigureService(services);
            SwaggerHelper.ConfigureService(services);

            // Settings
            services.Configure <EmailSettings>(Configuration.GetSection("Email"));
            services.Configure <ClientAppSettings>(Configuration.GetSection("ClientApp"));
            services.Configure <JwtSecurityTokenSettings>(Configuration.GetSection("JwtSecurityToken"));
            services.Configure <QRCodeSettings>(Configuration.GetSection("QRCode"));

            // Services
            services.AddTransient <IEmailService, EmailService>();

            // Azure
            // Azure Storage Services
            services.AddScoped <IBlobStorage>(s => new BlobStorage(Configuration["ConnectionStrings:AzureStorage"], Configuration["AzureStorage:ContainerName"], Configuration["AzureStorage:Url"]));
            services.AddScoped <IQueueStorage>(s => new QueueStorage(Configuration["ConnectionStrings:AzureStorage"]));

            // Data
        }
        public static IServiceCollection ConfigureIdentity(this IServiceCollection services, IConfiguration configuration, IWebHostEnvironment environment)
        {
            // Identity
            services.AddDbContext <IdentityContext>(options =>
                                                    options.UseSqlServer(
                                                        configuration.GetConnectionString("DefaultConnection"),
                                                        b => b.MigrationsAssembly(typeof(IdentityContext).Assembly.FullName)));



            services.AddScoped <IIdentityContext>(provider => provider.GetService <IdentityContext>());


            //Adds/Injects UserManager Service
            services.AddIdentity <ApplicationUser, IdentityRole>().AddEntityFrameworkStores <IdentityContext>();


            // Services
            services.AddTransient <IEmailService, EmailService>();
            services.AddTransient <IIdentityService, IdentityService>();


            //Keep this always at last. JWT
            AuthenticationHelper.ConfigureService(services, configuration["JwtSecurityToken:Issuer"], configuration["JwtSecurityToken:Audience"], configuration["JwtSecurityToken:Key"]);

            return(services);
        }
Esempio n. 3
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            //https://github.com/shammelburg/CoreIdentity
            // Identity
            services.AddDbContext <Api.Identity.SecurityContext>(options => options.UseSqlServer(Configuration["ConnectionStrings:DefaultConnection"]));
            // Tools->NuGet Package Manager -> Package Manager Console
            // Initialise
            // add-migration init -Context SecurityContext
            // update or create DB
            // update-database -Context SecurityContext
            IdentityHelper.ConfigureService(services);

            // Helpers
            AuthenticationHelper.ConfigureService(services, Configuration["JwtSecurityToken:Issuer"], Configuration["JwtSecurityToken:Audience"], Configuration["JwtSecurityToken:Key"]);
            CorsHelper.ConfigureService(services);
            SwaggerHelper.ConfigureService(services);

            // Settings
            services.Configure <EmailSettings>(Configuration.GetSection("Email"));
            services.Configure <ClientAppSettings>(Configuration.GetSection("ClientApp"));
            services.Configure <JwtSecurityTokenSettings>(Configuration.GetSection("JwtSecurityToken"));
            //services.Configure<QRCodeSettings>(Configuration.GetSection("QRCode"));

            // Services
            services.AddTransient <IEmailService, EmailService>();
            services.AddScoped(typeof(IGenericRepository <>), typeof(GenericRepository <>));
            services.AddTransient <IUnitOfWork, UnitOfWork>();

            services.AddControllers();
            services.AddHttpContextAccessor();

            // Mapper
            services.AddAutoMapper(typeof(AutoMapping));

            //Define upload
            services.Configure <FormOptions>(o => {
                o.ValueLengthLimit         = int.MaxValue;
                o.MultipartBodyLengthLimit = int.MaxValue;
                o.MemoryBufferThreshold    = int.MaxValue;
            });
        }
Esempio n. 4
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllers();

            // Register the Swagger generator, defining 1 or more Swagger documents
            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new OpenApiInfo {
                    Title = "XamWalletWebApi", Version = "v1"
                });
            });

            services.AddDbContext <AuthenticationContext>(options =>
                                                          options.UseSqlServer(Configuration.GetConnectionString("ProductionConnection")));

            services.AddIdentity <ApplicationUser, IdentityRole>(
                options =>
            {
                options.Lockout.AllowedForNewUsers      = true;
                options.Lockout.MaxFailedAccessAttempts = 10;
            })
            .AddEntityFrameworkStores <AuthenticationContext>()
            .AddDefaultTokenProviders();


            services.Configure <IdentityOptions>(options =>
            {
                options.Password.RequireDigit           = false;
                options.Password.RequireNonAlphanumeric = false;
                options.Password.RequireLowercase       = false;
                options.Password.RequireUppercase       = false;
                options.Password.RequiredLength         = 4;
            }
                                                 );

            AuthenticationHelper.ConfigureService(services, Configuration["JwtSecurityToken:Issuer"], Configuration["JwtSecurityToken:Audience"], Configuration["JwtSecurityToken:Key"]);
            CorsHelper.ConfigureService(services);
        }
Esempio n. 5
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            // Identity
            services.AddDbContext <SecurityContext>(options => options.UseSqlServer(Configuration["ConnectionStrings:Default"]));

            // Tools->NuGet Package Manager -> Package Manager Console
            // Initialise
            // add-migration init -Context SecurityContext
            // update or create DB
            // update-database -Context SecurityContext
            IdentityHelper.ConfigureService(services);

            // Helpers
            AuthenticationHelper.ConfigureService(services, Configuration["JwtSecurityToken:Issuer"], Configuration["JwtSecurityToken:Audience"], Configuration["JwtSecurityToken:Key"]);
            CorsHelper.ConfigureService(services);
            SwaggerHelper.ConfigureService(services);

            // Settings
            services.Configure <EmailSettings>(Configuration.GetSection("Email"));
            services.Configure <ClientAppSettings>(Configuration.GetSection("ClientApp"));
            services.Configure <JwtSecurityTokenSettings>(Configuration.GetSection("JwtSecurityToken"));
            services.Configure <QRCodeSettings>(Configuration.GetSection("QRCode"));

            // Services
            services.AddTransient <IEmailService, EmailService>();

            // Azure
            // Azure Storage Services
            services.AddScoped <IBlobStorage>(s => new BlobStorage(Configuration["ConnectionStrings:AzureStorage"], Configuration["AzureStorage:ContainerName"], Configuration["AzureStorage:Url"]));
            services.AddScoped <IQueueStorage>(s => new QueueStorage(Configuration["ConnectionStrings:AzureStorage"]));

            // Data
            services.AddDbContextPool <DataContext>(options => options.UseSqlServer(Configuration["ConnectionStrings:Default"]));
            services.AddScoped <IExampleRepo, ExampleRepo>();

            services.AddControllers();
        }
Esempio n. 6
0
        //Check
        public static IServiceCollection ConfigureInfrastructure(this IServiceCollection services, IConfiguration configuration, IWebHostEnvironment environment)
        {
            services.AddDbContext <ApplicationDbContext>(options =>
                                                         options.UseSqlServer(
                                                             configuration.GetConnectionString("DefaultConnection"),
                                                             b => b.MigrationsAssembly(typeof(ApplicationDbContext).Assembly.FullName)));

            services.AddScoped <IApplicationDbContext>(provider => provider.GetService <ApplicationDbContext>());

            //UserManager Service
            services.AddIdentity <ApplicationUser, IdentityRole>().AddEntityFrameworkStores <ApplicationDbContext>();

            //Services
            services.AddTransient <IAccountService, AccountService>();
            services.AddTransient <IDateTimeService, DateTimeService>();
            services.AddTransient <IEmailService, EmailService>();



            //Repositories
            //Generic
            services.AddTransient(typeof(IRepositoryAsync <>), typeof(GenericRepositoryAsync <>));
            //Specific Repositories
            services.AddTransient <IProductRepositoryAsync, ProductRepositoryAsync>();
            services.AddTransient <IProductGroupRepositoryAsync, ProductGroupRepositoryAsync>();
            services.AddTransient <IPersonRepositoryAsync, PersonRepositoryAsync>();
            services.AddTransient <IInvoiceRepositoryAsync, InvoiceRepositoryAsync>();
            services.AddTransient <IInvoiceDetailRepositoryAsync, InvoiceDetailRepositoryAsync>();
            services.AddAuthentication();

            //Keep this always at last. JWT
            AuthenticationHelper.ConfigureService(services, configuration["JwtSecurityToken:Issuer"], configuration["JwtSecurityToken:Audience"], configuration["JwtSecurityToken:Key"]);


            return(services);
        }
Esempio n. 7
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            // Auto Mapper Configurations
            var mappingConfig = new MapperConfiguration(mc =>
            {
                mc.AddProfile(new MappingProfile());
            });

            IMapper mapper = mappingConfig.CreateMapper();

            services.AddSingleton(mapper);

            // Identity
            services.AddDbContext <SchoolDbContext>(options => options.UseSqlite(Configuration.GetConnectionString("DefaultConnection")));

            // Identity kurulumu için
            // Tools->NuGet Package Manager -> Package Manager Console
            // add-migration init -Context SecurityContext
            // update-database -Context SecurityContext
            IdentityHelper.ConfigureService(services);

            // Helpers
            AuthenticationHelper.ConfigureService(services, Configuration["JwtSecurityToken:Issuer"], Configuration["JwtSecurityToken:Audience"], Configuration["JwtSecurityToken:Key"]);
            CorsHelper.ConfigureService(services);

            // Settings
            services.Configure <JwtSecurityTokenSettings>(Configuration.GetSection("JwtSecurityToken"));

            // Services
            //services.AddTransient<IEmailService, EmailService>();

            //Data
            services.AddDbContext <SchoolDbContext>(options =>
                                                    options.UseSqlite(Configuration.GetConnectionString("DefaultConnection")));

            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new OpenApiInfo
                {
                    Title   = "School API",
                    Version = "v1"
                });
                c.ResolveConflictingActions(apiDescriptions => apiDescriptions.First());
                c.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
                {
                    In          = ParameterLocation.Header,
                    Description = "Please insert JWT with Bearer into field",
                    Name        = "Authorization",
                    Type        = SecuritySchemeType.ApiKey
                });
                c.AddSecurityRequirement(new OpenApiSecurityRequirement {
                    {
                        new OpenApiSecurityScheme
                        {
                            Reference = new OpenApiReference
                            {
                                Type = ReferenceType.SecurityScheme,
                                Id   = "Bearer"
                            }
                        },
                        new string[] { }
                    }
                });
            });

            services.AddControllers()
            .AddNewtonsoftJson(options => options.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore);
        }