65 lines
2.5 KiB
C#
65 lines
2.5 KiB
C#
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<ISqlClient, SqlClient>(_ => new SqlClient(connectionString));
|
|
services.AddTransient<IWildcardModel, WildcardModel>();
|
|
services.AddTransient<IScanModel, ScanModel>();
|
|
services.AddTransient(serviceProvider =>
|
|
{
|
|
var optionsMonitor = serviceProvider.GetService<IOptionsMonitor<SMTPSettings>>();
|
|
|
|
return new SMTPClient(optionsMonitor?.CurrentValue);
|
|
});
|
|
services.Configure<ApiBehaviorOptions>(options =>
|
|
{
|
|
options.SuppressModelStateInvalidFilter = true;
|
|
});
|
|
services.Configure<SMTPSettings>(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?}");
|
|
});
|
|
}
|
|
}
|
|
}
|