From 13a11888fdca35d4663afe6188c3a4846e26408a Mon Sep 17 00:00:00 2001 From: Alejandro Sarmiento Date: Sun, 18 Feb 2024 22:14:34 +0100 Subject: [PATCH] DbContext y clases de configuracion y usuario creados --- .../CleanArchitectureIdentityDbContext.cs | 23 ++++++++++ .../Configurations/RoleConfiguration.cs | 33 ++++++++++++++ .../Configurations/UserConfiguration.cs | 43 +++++++++++++++++++ .../Configurations/UserRoleConfiguration.cs | 31 +++++++++++++ .../Models/ApplicationUser.cs | 10 +++++ 5 files changed, 140 insertions(+) create mode 100644 CleanArchitecture/CleanArchitecture.Identity/CleanArchitectureIdentityDbContext.cs create mode 100644 CleanArchitecture/CleanArchitecture.Identity/Configurations/RoleConfiguration.cs create mode 100644 CleanArchitecture/CleanArchitecture.Identity/Configurations/UserConfiguration.cs create mode 100644 CleanArchitecture/CleanArchitecture.Identity/Configurations/UserRoleConfiguration.cs create mode 100644 CleanArchitecture/CleanArchitecture.Identity/Models/ApplicationUser.cs diff --git a/CleanArchitecture/CleanArchitecture.Identity/CleanArchitectureIdentityDbContext.cs b/CleanArchitecture/CleanArchitecture.Identity/CleanArchitectureIdentityDbContext.cs new file mode 100644 index 0000000..5218752 --- /dev/null +++ b/CleanArchitecture/CleanArchitecture.Identity/CleanArchitectureIdentityDbContext.cs @@ -0,0 +1,23 @@ +using CleanArchitecture.Identity.Configurations; +using CleanArchitecture.Identity.Models; +using Microsoft.AspNetCore.Identity.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore; + +namespace CleanArchitecture.Identity +{ + public class CleanArchitectureIdentityDbContext : IdentityDbContext + { + public CleanArchitectureIdentityDbContext(DbContextOptions options) : base(options) + { + } + + protected override void OnModelCreating(ModelBuilder builder) + { + base.OnModelCreating(builder); + + builder.ApplyConfiguration(new RoleConfiguration()); + builder.ApplyConfiguration(new UserConfiguration()); + builder.ApplyConfiguration(new UserRoleConfiguration()); + } + } +} diff --git a/CleanArchitecture/CleanArchitecture.Identity/Configurations/RoleConfiguration.cs b/CleanArchitecture/CleanArchitecture.Identity/Configurations/RoleConfiguration.cs new file mode 100644 index 0000000..6e337b3 --- /dev/null +++ b/CleanArchitecture/CleanArchitecture.Identity/Configurations/RoleConfiguration.cs @@ -0,0 +1,33 @@ +using Microsoft.AspNetCore.Identity; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Metadata.Builders; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml.Linq; + +namespace CleanArchitecture.Identity.Configurations +{ + public class RoleConfiguration : IEntityTypeConfiguration + { + public void Configure(EntityTypeBuilder builder) + { + builder.HasData( + new IdentityRole + { + Id = "26f31fc8-f911-4761-956f-e72c0041c9c9", + Name = "Administrator", + NormalizedName = "ADMINISTRATOR" + }, + new IdentityRole + { + Id = "580b6053-a9a1-4373-8081-b1ae5db82406", + Name = "Operator", + NormalizedName = "OPERATOR" + } + ); + } + } +} diff --git a/CleanArchitecture/CleanArchitecture.Identity/Configurations/UserConfiguration.cs b/CleanArchitecture/CleanArchitecture.Identity/Configurations/UserConfiguration.cs new file mode 100644 index 0000000..4cab2bf --- /dev/null +++ b/CleanArchitecture/CleanArchitecture.Identity/Configurations/UserConfiguration.cs @@ -0,0 +1,43 @@ +using CleanArchitecture.Identity.Models; +using Microsoft.AspNetCore.Identity; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Metadata.Builders; + +namespace CleanArchitecture.Identity.Configurations +{ + public class UserConfiguration : IEntityTypeConfiguration + { + public void Configure(EntityTypeBuilder builder) + { + var hasher = new PasswordHasher(); + + builder.HasData( + new ApplicationUser() + { + Id = "b6e00d83-b0e5-4ec3-8935-c52857fc5678", + Email = "admin@asarmiento.es", + NormalizedEmail = "ADMIN@ASARMIENTO.ES", + Nombre = "Admin", + Apellidos = "Asarmiento", + UserName = "Administrator", + NormalizedUserName = "ADMINISTRATOR", + PasswordHash = hasher.HashPassword(null, "Password?2024"), + EmailConfirmed = true, + }, + new ApplicationUser() + { + Id = "611f8061-1c0f-4908-9d20-cb4fc0c18c74", + Email = "alex@asarmiento.es", + NormalizedEmail = "ALEX@ASARMIENTO.ES", + Nombre = "Alex", + Apellidos = "Sarmiento", + UserName = "Alex", + NormalizedUserName = "ALEX", + PasswordHash = hasher.HashPassword(null, "Password?2024"), + EmailConfirmed = true, + } + ); + + } + } +} diff --git a/CleanArchitecture/CleanArchitecture.Identity/Configurations/UserRoleConfiguration.cs b/CleanArchitecture/CleanArchitecture.Identity/Configurations/UserRoleConfiguration.cs new file mode 100644 index 0000000..bd29c6e --- /dev/null +++ b/CleanArchitecture/CleanArchitecture.Identity/Configurations/UserRoleConfiguration.cs @@ -0,0 +1,31 @@ +using Microsoft.AspNetCore.Identity; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Metadata.Builders; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CleanArchitecture.Identity.Configurations +{ + public class UserRoleConfiguration : IEntityTypeConfiguration> + { + public void Configure(EntityTypeBuilder> builder) + { + builder.HasData + ( + new IdentityUserRole + { + RoleId = "26f31fc8-f911-4761-956f-e72c0041c9c9", + UserId = "b6e00d83-b0e5-4ec3-8935-c52857fc5678" + }, + new IdentityUserRole + { + RoleId = "580b6053-a9a1-4373-8081-b1ae5db82406", + UserId = "611f8061-1c0f-4908-9d20-cb4fc0c18c74" + } + ); + } + } +} diff --git a/CleanArchitecture/CleanArchitecture.Identity/Models/ApplicationUser.cs b/CleanArchitecture/CleanArchitecture.Identity/Models/ApplicationUser.cs new file mode 100644 index 0000000..5af0661 --- /dev/null +++ b/CleanArchitecture/CleanArchitecture.Identity/Models/ApplicationUser.cs @@ -0,0 +1,10 @@ +using Microsoft.AspNetCore.Identity; + +namespace CleanArchitecture.Identity.Models +{ + public class ApplicationUser : IdentityUser + { + public string Nombre { get; set; } = string.Empty; + public string Apellidos { get; set; } = string.Empty; + } +}