diff --git a/API/API.FileSharing/Program.cs b/API/API.FileSharing/Program.cs index ba60d4c..83f947a 100644 --- a/API/API.FileSharing/Program.cs +++ b/API/API.FileSharing/Program.cs @@ -2,41 +2,17 @@ var builder = WebApplication.CreateBuilder(args); -// Add services to the container. builder.Services.AddControllers(); +builder.Services.AddSwaggerExplorer(builder.Configuration) + .AddFileSharingApiVersionConfiguration(new ApiVersion(0, 1)) + .AddSqlServerConnection(builder.Configuration) + .AddAppConfig(builder.Configuration) + .AddIdentityHandlersAndStores() + .ConfigureIdentityOptions() + .AddIdentityAuth(builder.Configuration) + .AddRepositories(); -// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle -builder.Services.AddEndpointsApiExplorer(); -builder.Services.AddAndConfigureSwagger( - builder.Configuration, - Path.Combine( - AppContext.BaseDirectory, - $"{Assembly.GetExecutingAssembly().GetName().Name}.xml"), - true); - -// add API Version support -builder.Services.AddFileSharingApiVersionConfiguration(new ApiVersion(0, 1)); - -// add SQL Server Connection -var connectionString = builder.Configuration.GetConnectionString("FileSharing"); -builder.Services.AddSqlServer(connectionString, options => -{ - options.EnableRetryOnFailure().CommandTimeout(60); -}); - -// add auth -builder.Services.AddAuthorization(); -builder.Services.AddAuthentication(); - -// Add Identity -builder.Services - .AddIdentityCore() - .AddEntityFrameworkStores() - .AddApiEndpoints(); - -// add repositories -builder.Services.AddRepositories(); // Configure logging builder.ConfigureSerilog(); @@ -55,26 +31,19 @@ SampleDataInitializer.InitializeData(dbContext); //SampleDataInitializer.ClearAndReseedDatabase(dbContext); } - app.UseSwagger(); - app.UseSwaggerUI(options => - { - using var scope = app.Services.CreateScope(); - var versionProvider = scope.ServiceProvider.GetRequiredService(); - // build a swagger endpoint for each discovered API version - foreach (var description in versionProvider.ApiVersionDescriptions) - { - options.SwaggerEndpoint($"/swagger/{description.GroupName}/swagger.json", description.GroupName.ToUpperInvariant()); - } - }); + app.ConfigureSwaggerExplorer(); } app.UseHttpsRedirection(); -// enable authorization checks -app.UseAuthentication(); -app.UseAuthorization(); +app.ConfigureCORS(builder.Configuration) + .AddIdentityAuthMiddlewares(); -app.MapIdentityApi(); app.MapControllers(); +app.MapGroup("/api") + .MapIdentityApi(); +app.MapGroup("/api") + .MapIdentityUserEndpoints(); + app.Run();