diff --git a/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/Extensions/DbHelpersEndpointsExtensions.cs b/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/GlobalHelpers/DbHelpersEndpointsExtensions.cs similarity index 95% rename from HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/Extensions/DbHelpersEndpointsExtensions.cs rename to HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/GlobalHelpers/DbHelpersEndpointsExtensions.cs index 8839ff1..410170b 100644 --- a/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/Extensions/DbHelpersEndpointsExtensions.cs +++ b/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/GlobalHelpers/DbHelpersEndpointsExtensions.cs @@ -1,10 +1,12 @@ -using Microsoft.AspNetCore.Http.HttpResults; +using HackathonPreparing.ApiService.UserSlice.EfCore.Models; using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using Swashbuckle.AspNetCore.SwaggerGen; +namespace HackathonPreparing.ApiService.GlobalHelpers; + public static class DbHelpersEndpointsExtensions { public static RouteGroupBuilder AddDbHelpersEndpoints(this WebApplication app) diff --git a/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/Extensions/ServicesExtensions.cs b/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/GlobalHelpers/ServicesExtensions.cs similarity index 89% rename from HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/Extensions/ServicesExtensions.cs rename to HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/GlobalHelpers/ServicesExtensions.cs index d424fa2..a4811bd 100644 --- a/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/Extensions/ServicesExtensions.cs +++ b/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/GlobalHelpers/ServicesExtensions.cs @@ -1,9 +1,8 @@ - - - - using Microsoft.EntityFrameworkCore; + +namespace HackathonPreparing.ApiService.GlobalHelpers; + public static class ServicesExtensions { diff --git a/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/Program.cs b/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/Program.cs index 77db60c..b73d830 100644 --- a/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/Program.cs +++ b/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/Program.cs @@ -1,4 +1,9 @@ -using HackathonPreparing.ApiService; +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 Microsoft.AspNetCore.Identity; using Microsoft.OpenApi.Models; diff --git a/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/User/EfCore/EntityConfigurations/UserEntityTypeConfiguration.cs b/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/User/EfCore/EntityConfigurations/UserEntityTypeConfiguration.cs deleted file mode 100644 index edb888c..0000000 --- a/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/User/EfCore/EntityConfigurations/UserEntityTypeConfiguration.cs +++ /dev/null @@ -1,12 +0,0 @@ -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Metadata.Builders; - - -//Example how add Fluent Building in project -public class UserEntityTypeConfiguration : IEntityTypeConfiguration -{ - public void Configure(EntityTypeBuilder builder) - { - - } -} diff --git a/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/User/UserController.cs b/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/User/UserController.cs deleted file mode 100644 index 9d33baf..0000000 --- a/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/User/UserController.cs +++ /dev/null @@ -1,9 +0,0 @@ -using Microsoft.AspNetCore.Mvc; - -namespace HackathonPreparing.ApiService.User -{ - public class UserController : Controller - { - - } -} diff --git a/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/User/EfCore/EntityConfigurations/IdentityRoleEntityTypeConfiguration.cs b/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/UserSlice/EfCore/EntityTypeConfigurations/IdentityRoleEntityTypeConfiguration.cs similarity index 87% rename from HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/User/EfCore/EntityConfigurations/IdentityRoleEntityTypeConfiguration.cs rename to HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/UserSlice/EfCore/EntityTypeConfigurations/IdentityRoleEntityTypeConfiguration.cs index 816759f..c3e4ad8 100644 --- a/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/User/EfCore/EntityConfigurations/IdentityRoleEntityTypeConfiguration.cs +++ b/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/UserSlice/EfCore/EntityTypeConfigurations/IdentityRoleEntityTypeConfiguration.cs @@ -2,6 +2,9 @@ using Microsoft.AspNetCore.Identity; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; + +namespace HackathonPreparing.ApiService.UserSlice.EfCore.EntityTypeConfigurations; + public class IdentityRoleEntityTypeConfiguration : IEntityTypeConfiguration> { public void Configure(EntityTypeBuilder> builder) diff --git a/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/User/EfCore/User.cs b/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/UserSlice/EfCore/Models/UserModel.cs similarity index 73% rename from HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/User/EfCore/User.cs rename to HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/UserSlice/EfCore/Models/UserModel.cs index 038bf43..4b281af 100644 --- a/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/User/EfCore/User.cs +++ b/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/UserSlice/EfCore/Models/UserModel.cs @@ -1,7 +1,7 @@ - - using Microsoft.AspNetCore.Identity; +namespace HackathonPreparing.ApiService.UserSlice.EfCore.Models; + public class User : IdentityUser { public string? AboutMe { get; set; } diff --git a/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/User/EfCore/UserContext.cs b/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/UserSlice/EfCore/UserContext.cs similarity index 81% rename from HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/User/EfCore/UserContext.cs rename to HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/UserSlice/EfCore/UserContext.cs index ab3cf7b..f9d53b3 100644 --- a/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/User/EfCore/UserContext.cs +++ b/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/UserSlice/EfCore/UserContext.cs @@ -1,9 +1,11 @@ - - +using HackathonPreparing.ApiService.UserSlice.EfCore.Models; using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Identity.EntityFrameworkCore; using Microsoft.EntityFrameworkCore; + +namespace HackathonPreparing.ApiService.UserSlice.EfCore; + public class UserContext : IdentityDbContext, int> { public UserContext (DbContextOptions options) : base(options) {} diff --git a/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/User/OpenApi/UserOpenApiSchemeFilter.cs b/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/UserSlice/OpenApi/UserOpenApiSchemeFilter.cs similarity index 85% rename from HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/User/OpenApi/UserOpenApiSchemeFilter.cs rename to HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/UserSlice/OpenApi/UserOpenApiSchemeFilter.cs index 98a7a26..ff8eaf3 100644 --- a/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/User/OpenApi/UserOpenApiSchemeFilter.cs +++ b/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/UserSlice/OpenApi/UserOpenApiSchemeFilter.cs @@ -1,11 +1,11 @@ - - -using HackathonPreparing.ApiService.Migrations; using Microsoft.AspNetCore.Identity.Data; using Microsoft.OpenApi.Any; using Microsoft.OpenApi.Models; using Swashbuckle.AspNetCore.SwaggerGen; + +namespace HackathonPreparing.ApiService.UserSlice.OpenApi; + public class UserOpenApiSchemeFilter : ISchemaFilter { public void Apply(OpenApiSchema schema, SchemaFilterContext context) @@ -14,13 +14,11 @@ public class UserOpenApiSchemeFilter : ISchemaFilter { schema.Example = new OpenApiObject() { - ["email"] = new OpenApiString("email@gmail.com"), + ["email"] = new OpenApiString("m@gmail.com"), ["password"] = new OpenApiString("PassPass123_"), }; } - - - + if (context.Type == typeof(RegisterRequest)) { schema.Example = new OpenApiObject() diff --git a/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/WeatherForecast/WeatherForecastContext.cs b/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/WeatherForecast/WeatherForecastContext.cs deleted file mode 100644 index 73d4652..0000000 --- a/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/WeatherForecast/WeatherForecastContext.cs +++ /dev/null @@ -1,41 +0,0 @@ -using Microsoft.EntityFrameworkCore; - -namespace HackathonPreparing.ApiService; - -public sealed class WeatherForecastContext : DbContext -{ - public WeatherForecastContext(DbContextOptions options) - : base(options) - { - - } - - public DbSet Forecasts => Set(); - - protected override void OnModelCreating(ModelBuilder modelBuilder) - { - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id); - entity.Property(e => e.Id).ValueGeneratedOnAdd(); - - // Generate data - var summaries = new[] - { - "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" - }; - var forecast = Enumerable.Range(1, 5).Select(index => - new WeatherForecast - ( - index, - DateOnly.FromDateTime(DateTime.Now.AddDays(index)), - Random.Shared.Next(-20, 55), - summaries[Random.Shared.Next(summaries.Length)] - )) - .ToArray(); - entity.HasData(forecast); - }); - - base.OnModelCreating(modelBuilder); - } -} diff --git a/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/WeatherForecastSlice/EfCore/EntityTypeConfigurations/WeatherForecastEntityTypeConfiguration.cs b/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/WeatherForecastSlice/EfCore/EntityTypeConfigurations/WeatherForecastEntityTypeConfiguration.cs new file mode 100644 index 0000000..a217d53 --- /dev/null +++ b/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/WeatherForecastSlice/EfCore/EntityTypeConfigurations/WeatherForecastEntityTypeConfiguration.cs @@ -0,0 +1,30 @@ +using HackathonPreparing.ApiService.WeatherForecastSlice.EfCore.Models; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Metadata.Builders; + +namespace HackathonPreparing.ApiService.WeatherForecastSlice.EfCore.EntityTypeConfigurations; + +public class WeatherForecastEntityTypeConfiguration : IEntityTypeConfiguration +{ + public void Configure(EntityTypeBuilder builder) + { + builder.HasKey(e => e.Id); + builder.Property(e => e.Id).ValueGeneratedOnAdd(); + + // Generate data + var summaries = new[] + { + "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" + }; + var forecast = Enumerable.Range(1, 5).Select(index => + new WeatherForecast + ( + index, + DateOnly.FromDateTime(DateTime.Now.AddDays(index)), + Random.Shared.Next(-20, 55), + summaries[Random.Shared.Next(summaries.Length)] + )) + .ToArray(); + builder.HasData(forecast); + } +} \ No newline at end of file diff --git a/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/WeatherForecast/WeatherForecast.cs b/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/WeatherForecastSlice/EfCore/Models/WeatherForecastModel.cs similarity index 83% rename from HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/WeatherForecast/WeatherForecast.cs rename to HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/WeatherForecastSlice/EfCore/Models/WeatherForecastModel.cs index 5f1b846..7d8db69 100644 --- a/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/WeatherForecast/WeatherForecast.cs +++ b/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/WeatherForecastSlice/EfCore/Models/WeatherForecastModel.cs @@ -1,4 +1,5 @@ -namespace HackathonPreparing.ApiService; + +namespace HackathonPreparing.ApiService.WeatherForecastSlice.EfCore.Models; public class WeatherForecast { diff --git a/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/WeatherForecastSlice/EfCore/WeatherForecastContext.cs b/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/WeatherForecastSlice/EfCore/WeatherForecastContext.cs new file mode 100644 index 0000000..140d913 --- /dev/null +++ b/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/WeatherForecastSlice/EfCore/WeatherForecastContext.cs @@ -0,0 +1,22 @@ +using HackathonPreparing.ApiService.WeatherForecastSlice.EfCore.Models; +using Microsoft.EntityFrameworkCore; + +namespace HackathonPreparing.ApiService.WeatherForecastSlice.EfCore; + +public sealed class WeatherForecastContext : DbContext +{ + public WeatherForecastContext(DbContextOptions options) + : base(options) + { + + } + + public DbSet Forecasts => Set(); + + protected override void OnModelCreating(ModelBuilder builder) + { + base.OnModelCreating(builder); + builder.ApplyConfigurationsFromAssembly(typeof(Program).Assembly); + builder.HasDefaultSchema("weatherforecast"); + } +} diff --git a/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/WeatherForecast/WeatherForecastEndpointsExtensions.cs b/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/WeatherForecastSlice/Endpoints/WeatherForecastEndpointsExtensions.cs similarity index 86% rename from HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/WeatherForecast/WeatherForecastEndpointsExtensions.cs rename to HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/WeatherForecastSlice/Endpoints/WeatherForecastEndpointsExtensions.cs index d3fe79b..5e55be7 100644 --- a/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/WeatherForecast/WeatherForecastEndpointsExtensions.cs +++ b/HackathonPreparing/HackathonPreparing/HackathonPreparing.ApiService/WeatherForecastSlice/Endpoints/WeatherForecastEndpointsExtensions.cs @@ -1,10 +1,10 @@ - - - -using HackathonPreparing.ApiService; +using HackathonPreparing.ApiService.WeatherForecastSlice.EfCore; +using HackathonPreparing.ApiService.WeatherForecastSlice.EfCore.Models; using Microsoft.EntityFrameworkCore; -public static class WeatherForecastExtensions +namespace HackathonPreparing.ApiService.WeatherForecastSlice.Endpoints; + +public static class WeatherForecastEndpointsExtensions { public static void AddWeatherForecastEndpoints (this WebApplication app) {