// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddDbContext <DataContext.DataContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"), b => b.MigrationsAssembly("Golf80"))); services.AddAutoMapper(typeof(Startup)); IocConfig.ConfigureServices(services); services.AddControllers(); // Register the Swagger generator, defining 1 or more Swagger documents services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new OpenApiInfo { Version = "v1", Title = "ToDo API", Description = "A simple example ASP.NET Core Web API", TermsOfService = new Uri("https://example.com/terms"), Contact = new OpenApiContact { Name = "Shayne Boyer", Email = string.Empty, Url = new Uri("https://twitter.com/spboyer"), }, License = new OpenApiLicense { Name = "Use under LICX", Url = new Uri("https://example.com/license"), } }); }); }
// This method gets called by the runtime. Use this method to add services to the container. public IServiceProvider ConfigureServices(IServiceCollection services) { BackgroundServiceConfig.ConfigureServices(services, Configuration); MvcConfig.ConfigureServices(services, Configuration); AuthConfig.ConfigureServices(services, Configuration); DataConfig.ConfigureServices(services, Configuration); CacheConfig.ConfigureServices(services, Configuration); ReportServiceConfig.ConfigureServices(services, Configuration); UploadConfig.ConfigureServices(services, Configuration); return(IocConfig.ConfigureServices(services, Configuration)); }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.Configure <CookiePolicyOptions>(options => { options.CheckConsentNeeded = context => true; options.MinimumSameSitePolicy = SameSiteMode.None; }); // Adding Authentication services.AddAuthentication(options => { options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; options.DefaultScheme = JwtBearerDefaults.AuthenticationScheme; }) // Adding Jwt Bearer .AddJwtBearer(options => { options.SaveToken = true; options.RequireHttpsMetadata = false; options.TokenValidationParameters = new TokenValidationParameters() { ValidateIssuer = true, ValidateAudience = true, ValidAudience = Configuration["JwtSettings:ValidAudience"], ValidIssuer = Configuration["JwtSettings:ValidIssuer"], IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration["JwtSettings:Secret"])) }; }); services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_3_0).AddJsonOptions(o => { o.JsonSerializerOptions.PropertyNamingPolicy = null; o.JsonSerializerOptions.DictionaryKeyPolicy = null; }); services.AddCors(options => { options.AddPolicy("AllowAllOrigins", builder => { builder.AllowAnyMethod().AllowAnyHeader().AllowAnyOrigin(); }); }); services.AddApplicationInsightsTelemetry(); services.AddControllers(); services.AddHttpContextAccessor(); //Call service injection IocConfig.ConfigureServices(ref services, Configuration); Infrastructure.Repository.IocConfig.ConfigureServices(ref services); DataAccess.IocConfig.ConfigureServices(ref services); BusinessLayer.IocConfig.ConfigureServices(ref services); services.Configure <AppKeyConfig>(Configuration.GetSection("AppKeyConfig")); //Register swagger services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new OpenApiInfo { Title = "Event Yojana Admin Service", Version = "v1" }); const string idSecurity = "AppKey"; c.AddSecurityDefinition(idSecurity, new OpenApiSecurityScheme { Name = Configuration.GetValue <string>("AppKeyConfig:HeaderName"), In = ParameterLocation.Header, Description = "Individual Application Key.", Type = SecuritySchemeType.ApiKey }); c.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme() { Name = Configuration.GetValue <string>("JwtSettings:HeaderName"), Type = SecuritySchemeType.ApiKey, Scheme = "Bearer", BearerFormat = "JWT", In = ParameterLocation.Header, Description = "JWT Authorization header using the Bearer scheme. \r\n\r\n Enter 'Bearer' [space] and then your token in the text input below.\r\n\r\nExample: \"Bearer 12345abcdef\"", }); var xmlFileWeb = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml"; c.IncludeXmlComments(Path.Combine(AppContext.BaseDirectory, xmlFileWeb), true); c.AddSecurityRequirement(new OpenApiSecurityRequirement { { new OpenApiSecurityScheme { Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = idSecurity } }, new string[] { } } }); c.AddSecurityRequirement(new OpenApiSecurityRequirement { { new OpenApiSecurityScheme { Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "Bearer" } }, new string[] {} } }); c.OperationFilter <CustomeBindingFilters>(); c.OperationFilter <UnSecureHeaderFilter>(); c.OperationFilter <GenericResponseFilter>(); c.OperationFilter <FileOperationFilter>(); c.EnableAnnotations(); }); }