public static void DalDependenciesResolver(this IServiceCollection services, IConfiguration configuration)
        {
            services.AddDbContext <WarehouseContext>(
                options => options.UseSqlServer(VaultHandler.GetDbDataFromVault()));

            services.AddScoped <DbContext, WarehouseContext>();
            services.AddScoped <IUoW, EfUoW>();

            services.AddScoped <IBrandRepository, BrandRepository>();
        }
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            //Inject AppSettings
            var secrets = VaultHandler.GetDataFromVault();

            JwtService.Token            = secrets.JwtSecret;
            JwtService.ConnectionString = secrets.ConnectionString;

            services.Configure <ApplicationSettings>(Configuration.GetSection("ApplicationSettings"));

            services.AddControllers();

            services.AddDbContext <AuthenticationContext>(options =>
                                                          options.UseSqlServer(JwtService.ConnectionString));

            services.AddDefaultIdentity <ApplicationUser>()
            .AddRoles <IdentityRole>()
            .AddEntityFrameworkStores <AuthenticationContext>();

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

            services.AddCors();

            //Jwt Authentication

            var key = Encoding.UTF8.GetBytes(JwtService.Token);

            services.AddAuthentication(x =>
            {
                x.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
                x.DefaultChallengeScheme    = JwtBearerDefaults.AuthenticationScheme;
                x.DefaultScheme             = JwtBearerDefaults.AuthenticationScheme;
            }).AddJwtBearer(x => {
                x.RequireHttpsMetadata      = false;
                x.SaveToken                 = false;
                x.TokenValidationParameters = new TokenValidationParameters
                {
                    ValidateIssuerSigningKey = true,
                    IssuerSigningKey         = new SymmetricSecurityKey(key),
                    ValidateIssuer           = false,
                    ValidateAudience         = false,
                    ClockSkew = TimeSpan.Zero
                };
            });
        }