Newer
Older
Warehouse / src / WebApi / Startup.cs
@Derek Comartin Derek Comartin on 22 Aug 2023 1 KB Init
using MyWarehouse.WebApi.Logging;
using MyWarehouse.WebApi.ErrorHandling;
using MyWarehouse.WebApi.CORS;
using MyWarehouse.Infrastructure;
using MyWarehouse.Application;
using MyWarehouse.WebApi.Authentication;
using MyWarehouse.WebApi.Swagger;
using MyWarehouse.WebApi.Versioning;

namespace MyWarehouse.WebApi;

[ExcludeFromCodeCoverage]
public class Startup
{
    protected IConfiguration Configuration { get; }
    protected IWebHostEnvironment Environment { get; }

    public Startup(IConfiguration configuration, IWebHostEnvironment environment)
        => (Configuration, Environment) = (configuration, environment);

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddMyApi();
        services.AddMyApiAuthDeps();
        services.AddMyErrorHandling();
        services.AddMySwagger(Configuration);
        services.AddMyVersioning();
        services.AddMyCorsConfiguration(Configuration);
        services.AddMyInfrastructureDependencies(Configuration, Environment);
        services.AddMyApplicationDependencies();
    }

    public void Configure(IApplicationBuilder app)
    {
        app.UseMyRequestLogging();
        app.UseHttpsRedirection();
        app.UseRouting();
        app.UseMyCorsConfiguration();
        app.UseMySwagger(Configuration);
        app.UseMyInfrastructure(Configuration, Environment);
        app.UseMyApi();
    }
}