From 183728647ee4ea567785507d346c95c17833528a Mon Sep 17 00:00:00 2001 From: Sergey Karmanov Date: Wed, 19 Jun 2024 05:02:35 +0300 Subject: [PATCH] Refactoring V2 --- .../EfCore}/IdentityRoleEntityTypeConfiguration.cs | 3 +-- .../{UserSlice => Auth}/EfCore/UserContext.cs | 6 ++---- .../{UserSlice/EfCore/Models => Auth}/UserModel.cs | 2 +- .../OpenApi => Auth}/UserOpenApiSchemeFilter.cs | 3 +-- .../GlobalHelpers/DbHelpersEndpointsExtensions.cs | 6 ++---- .../HackathonPreparing.ApiService/Program.cs | 10 +++++----- .../EfCore/WeatherForecastContext.cs | 5 ++--- .../EfCore}/WeatherForecastEntityTypeConfiguration.cs | 3 +-- .../WeatherForecastEndpointsExtensions.cs | 9 ++++----- .../Models => WeatherForecast}/WeatherForecastModel.cs | 3 +-- .../HackathonPreparing.ServiceDefaults/Extensions.cs | 3 ++- .../HackathonPreparing.Web/Program.cs | 1 + 12 files changed, 23 insertions(+), 31 deletions(-) rename HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/{UserSlice/EfCore/EntityTypeConfigurations => Auth/EfCore}/IdentityRoleEntityTypeConfiguration.cs (88%) rename HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/{UserSlice => Auth}/EfCore/UserContext.cs (70%) rename HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/{UserSlice/EfCore/Models => Auth}/UserModel.cs (72%) rename HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/{UserSlice/OpenApi => Auth}/UserOpenApiSchemeFilter.cs (93%) rename HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/{WeatherForecastSlice => WeatherForecast}/EfCore/WeatherForecastContext.cs (68%) rename HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/{WeatherForecastSlice/EfCore/EntityTypeConfigurations => WeatherForecast/EfCore}/WeatherForecastEntityTypeConfiguration.cs (85%) rename HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/{WeatherForecastSlice/Endpoints => WeatherForecast}/WeatherForecastEndpointsExtensions.cs (83%) rename HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/{WeatherForecastSlice/EfCore/Models => WeatherForecast}/WeatherForecastModel.cs (83%) diff --git a/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/UserSlice/EfCore/EntityTypeConfigurations/IdentityRoleEntityTypeConfiguration.cs b/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/Auth/EfCore/IdentityRoleEntityTypeConfiguration.cs similarity index 88% rename from HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/UserSlice/EfCore/EntityTypeConfigurations/IdentityRoleEntityTypeConfiguration.cs rename to HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/Auth/EfCore/IdentityRoleEntityTypeConfiguration.cs index c3e4ad8..8a5faca 100644 --- a/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/UserSlice/EfCore/EntityTypeConfigurations/IdentityRoleEntityTypeConfiguration.cs +++ b/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/Auth/EfCore/IdentityRoleEntityTypeConfiguration.cs @@ -2,8 +2,7 @@ using Microsoft.AspNetCore.Identity; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; - -namespace HackathonPreparing.ApiService.UserSlice.EfCore.EntityTypeConfigurations; +namespace HackathonPreparing.ApiService.Auth.EfCore; public class IdentityRoleEntityTypeConfiguration : IEntityTypeConfiguration> { diff --git a/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/UserSlice/EfCore/UserContext.cs b/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/Auth/EfCore/UserContext.cs similarity index 70% rename from HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/UserSlice/EfCore/UserContext.cs rename to HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/Auth/EfCore/UserContext.cs index f9d53b3..d97a9f7 100644 --- a/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/UserSlice/EfCore/UserContext.cs +++ b/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/Auth/EfCore/UserContext.cs @@ -1,12 +1,10 @@ -using HackathonPreparing.ApiService.UserSlice.EfCore.Models; using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Identity.EntityFrameworkCore; using Microsoft.EntityFrameworkCore; +namespace HackathonPreparing.ApiService.Auth.EfCore; -namespace HackathonPreparing.ApiService.UserSlice.EfCore; - -public class UserContext : IdentityDbContext, int> +public class UserContext : IdentityDbContext, int> { public UserContext (DbContextOptions options) : base(options) {} diff --git a/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/UserSlice/EfCore/Models/UserModel.cs b/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/Auth/UserModel.cs similarity index 72% rename from HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/UserSlice/EfCore/Models/UserModel.cs rename to HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/Auth/UserModel.cs index 4b281af..486ff56 100644 --- a/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/UserSlice/EfCore/Models/UserModel.cs +++ b/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/Auth/UserModel.cs @@ -1,6 +1,6 @@ using Microsoft.AspNetCore.Identity; -namespace HackathonPreparing.ApiService.UserSlice.EfCore.Models; +namespace HackathonPreparing.ApiService.Auth; public class User : IdentityUser { diff --git a/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/UserSlice/OpenApi/UserOpenApiSchemeFilter.cs b/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/Auth/UserOpenApiSchemeFilter.cs similarity index 93% rename from HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/UserSlice/OpenApi/UserOpenApiSchemeFilter.cs rename to HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/Auth/UserOpenApiSchemeFilter.cs index ff8eaf3..2d5f0e9 100644 --- a/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/UserSlice/OpenApi/UserOpenApiSchemeFilter.cs +++ b/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/Auth/UserOpenApiSchemeFilter.cs @@ -3,8 +3,7 @@ using Microsoft.OpenApi.Any; using Microsoft.OpenApi.Models; using Swashbuckle.AspNetCore.SwaggerGen; - -namespace HackathonPreparing.ApiService.UserSlice.OpenApi; +namespace HackathonPreparing.ApiService.Auth; public class UserOpenApiSchemeFilter : ISchemaFilter { diff --git a/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/GlobalHelpers/DbHelpersEndpointsExtensions.cs b/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/GlobalHelpers/DbHelpersEndpointsExtensions.cs index 410170b..98be0d7 100644 --- a/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/GlobalHelpers/DbHelpersEndpointsExtensions.cs +++ b/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/GlobalHelpers/DbHelpersEndpointsExtensions.cs @@ -1,5 +1,3 @@ - -using HackathonPreparing.ApiService.UserSlice.EfCore.Models; using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; @@ -55,8 +53,8 @@ public static class DbHelpersEndpointsExtensions return Results.Ok(); }); - group.MapPost("/add-moderator", async ([FromServices]UserManager userManager) => { - var user = new User{ + group.MapPost("/add-moderator", async ([FromServices]UserManager userManager) => { + var user = new Auth.User{ Email = "m@gmail.com", UserName = "m@gmail.com" }; diff --git a/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/Program.cs b/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/Program.cs index b73d830..326e623 100644 --- a/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/Program.cs +++ b/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/Program.cs @@ -1,9 +1,9 @@ +using HackathonPreparing.ApiService.Auth; +using HackathonPreparing.ApiService.Auth.EfCore; using HackathonPreparing.ApiService.GlobalHelpers; -using HackathonPreparing.ApiService.UserSlice.EfCore; -using HackathonPreparing.ApiService.UserSlice.EfCore.Models; -using HackathonPreparing.ApiService.UserSlice.OpenApi; -using HackathonPreparing.ApiService.WeatherForecastSlice.EfCore; -using HackathonPreparing.ApiService.WeatherForecastSlice.Endpoints; +using HackathonPreparing.ApiService.WeatherForecast; +using HackathonPreparing.ApiService.WeatherForecast.EfCore; +using HackathonPreparing.ServiceDefaults; using Microsoft.AspNetCore.Identity; using Microsoft.OpenApi.Models; diff --git a/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/WeatherForecastSlice/EfCore/WeatherForecastContext.cs b/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/WeatherForecast/EfCore/WeatherForecastContext.cs similarity index 68% rename from HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/WeatherForecastSlice/EfCore/WeatherForecastContext.cs rename to HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/WeatherForecast/EfCore/WeatherForecastContext.cs index 140d913..7e7e319 100644 --- a/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/WeatherForecastSlice/EfCore/WeatherForecastContext.cs +++ b/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/WeatherForecast/EfCore/WeatherForecastContext.cs @@ -1,7 +1,6 @@ -using HackathonPreparing.ApiService.WeatherForecastSlice.EfCore.Models; using Microsoft.EntityFrameworkCore; -namespace HackathonPreparing.ApiService.WeatherForecastSlice.EfCore; +namespace HackathonPreparing.ApiService.WeatherForecast.EfCore; public sealed class WeatherForecastContext : DbContext { @@ -11,7 +10,7 @@ public sealed class WeatherForecastContext : DbContext } - public DbSet Forecasts => Set(); + public DbSet Forecasts => Set(); protected override void OnModelCreating(ModelBuilder builder) { diff --git a/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/WeatherForecastSlice/EfCore/EntityTypeConfigurations/WeatherForecastEntityTypeConfiguration.cs b/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/WeatherForecast/EfCore/WeatherForecastEntityTypeConfiguration.cs similarity index 85% rename from HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/WeatherForecastSlice/EfCore/EntityTypeConfigurations/WeatherForecastEntityTypeConfiguration.cs rename to HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/WeatherForecast/EfCore/WeatherForecastEntityTypeConfiguration.cs index a217d53..d32c19a 100644 --- a/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/WeatherForecastSlice/EfCore/EntityTypeConfigurations/WeatherForecastEntityTypeConfiguration.cs +++ b/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/WeatherForecast/EfCore/WeatherForecastEntityTypeConfiguration.cs @@ -1,8 +1,7 @@ -using HackathonPreparing.ApiService.WeatherForecastSlice.EfCore.Models; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; -namespace HackathonPreparing.ApiService.WeatherForecastSlice.EfCore.EntityTypeConfigurations; +namespace HackathonPreparing.ApiService.WeatherForecast.EfCore; public class WeatherForecastEntityTypeConfiguration : IEntityTypeConfiguration { diff --git a/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/WeatherForecastSlice/Endpoints/WeatherForecastEndpointsExtensions.cs b/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/WeatherForecast/WeatherForecastEndpointsExtensions.cs similarity index 83% rename from HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/WeatherForecastSlice/Endpoints/WeatherForecastEndpointsExtensions.cs rename to HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/WeatherForecast/WeatherForecastEndpointsExtensions.cs index 5e55be7..c306fff 100644 --- a/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/WeatherForecastSlice/Endpoints/WeatherForecastEndpointsExtensions.cs +++ b/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/WeatherForecast/WeatherForecastEndpointsExtensions.cs @@ -1,8 +1,7 @@ -using HackathonPreparing.ApiService.WeatherForecastSlice.EfCore; -using HackathonPreparing.ApiService.WeatherForecastSlice.EfCore.Models; +using HackathonPreparing.ApiService.WeatherForecast.EfCore; using Microsoft.EntityFrameworkCore; -namespace HackathonPreparing.ApiService.WeatherForecastSlice.Endpoints; +namespace HackathonPreparing.ApiService.WeatherForecast; public static class WeatherForecastEndpointsExtensions { @@ -23,14 +22,14 @@ public static class WeatherForecastEndpointsExtensions return Results.NoContent(); }).RequireAuthorization("moderator"); - group.MapPost("/", async (WeatherForecastContext db, WeatherForecast forecast) => + group.MapPost("/", async (WeatherForecastContext db, ApiService.WeatherForecast.WeatherForecast forecast) => { db.Forecasts.Add(forecast); await db.SaveChangesAsync(); return Results.Created($"/weatherforecast/{forecast.Id}", forecast); }); - group.MapPut("/{id}", async (WeatherForecastContext db, int id, WeatherForecast forecast) => + group.MapPut("/{id}", async (WeatherForecastContext db, int id, ApiService.WeatherForecast.WeatherForecast forecast) => { if (id != forecast.Id) { diff --git a/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/WeatherForecastSlice/EfCore/Models/WeatherForecastModel.cs b/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/WeatherForecast/WeatherForecastModel.cs similarity index 83% rename from HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/WeatherForecastSlice/EfCore/Models/WeatherForecastModel.cs rename to HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/WeatherForecast/WeatherForecastModel.cs index 7d8db69..9c758a6 100644 --- a/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/WeatherForecastSlice/EfCore/Models/WeatherForecastModel.cs +++ b/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/WeatherForecast/WeatherForecastModel.cs @@ -1,5 +1,4 @@ - -namespace HackathonPreparing.ApiService.WeatherForecastSlice.EfCore.Models; +namespace HackathonPreparing.ApiService.WeatherForecast; public class WeatherForecast { diff --git a/HackathonPreparing/HackathonPreparing/HackathonPreparing.ServiceDefaults/Extensions.cs b/HackathonPreparing/HackathonPreparing/HackathonPreparing.ServiceDefaults/Extensions.cs index 0a2ee48..999794c 100644 --- a/HackathonPreparing/HackathonPreparing/HackathonPreparing.ServiceDefaults/Extensions.cs +++ b/HackathonPreparing/HackathonPreparing/HackathonPreparing.ServiceDefaults/Extensions.cs @@ -2,12 +2,13 @@ using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Diagnostics.HealthChecks; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Diagnostics.HealthChecks; +using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using OpenTelemetry; using OpenTelemetry.Metrics; using OpenTelemetry.Trace; -namespace Microsoft.Extensions.Hosting; +namespace HackathonPreparing.ServiceDefaults; // Adds common .NET Aspire services: service discovery, resilience, health checks, and OpenTelemetry. // This project should be referenced by each service project in your solution. diff --git a/HackathonPreparing/HackathonPreparing/HackathonPreparing.Web/Program.cs b/HackathonPreparing/HackathonPreparing/HackathonPreparing.Web/Program.cs index 545a0e6..7eb1e19 100644 --- a/HackathonPreparing/HackathonPreparing/HackathonPreparing.Web/Program.cs +++ b/HackathonPreparing/HackathonPreparing/HackathonPreparing.Web/Program.cs @@ -1,3 +1,4 @@ +using HackathonPreparing.ServiceDefaults; using HackathonPreparing.Web; using HackathonPreparing.Web.Components;