namespace LaaProductionWeb.API { using LaaProductionWeb.Data; using LaaProductionWeb.Data.Interfaces; using LaaProductionWeb.API.Areas.Serach.Models; using LaaProductionWeb.API.Areas.Serach.Models.Interfaces; using LaaProductionWeb.API.Areas.Shipment.Models.Interfaces; using LaaProductionWeb.API.Areas.Shipment.Models; using LaaProductionWeb.API.Models; using LaaProductionWeb.API.Models.SMTP; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; public class Startup { private readonly IConfiguration configuration; public Startup(IConfiguration configuration) => this.configuration = configuration; public void ConfigureServices(IServiceCollection services) { var connectionString = this.configuration .GetConnectionString(nameof(ConnectionStrings.DefaultConnection)); services.AddTransient(_ => new SqlClient(connectionString)); services.AddTransient(); services.AddTransient(); services.AddTransient(serviceProvider => { var optionsMonitor = serviceProvider.GetService>(); return new SMTPClient(optionsMonitor?.CurrentValue); }); services.Configure(options => { options.SuppressModelStateInvalidFilter = true; }); services.Configure(this.configuration); services .AddMvc() .SetCompatibilityVersion(CompatibilityVersion.Latest); } public void Configure(IApplicationBuilder app, IHostingEnvironment env) { app.UseHsts(); app.UseDeveloperExceptionPage(); app.UseHttpsRedirection(); app.UseStaticFiles(); app.UseCookiePolicy(); app.UseMvc(routes => { routes.MapRoute(name: "default", template: "{controller=Home}/{action=Index}/{id?}"); routes.MapRoute(name: "areas", template: "{area:exists}/{controller=Home}/{action=Index}/{id?}"); }); } } }