cambios para tener composite

This commit is contained in:
2025-03-05 19:12:02 -03:00
parent 21724a372f
commit dda1032685
4 changed files with 69 additions and 3 deletions

View File

@@ -419,6 +419,42 @@ public partial class AlquilaFacilContext : DbContext
entity.Property(e => e.Nombre)
.HasMaxLength(12)
.HasColumnName("nombre");
entity.HasMany(d => d.IdGrupoHijos).WithMany(p => p.IdGrupoPadres)
.UsingEntity<Dictionary<string, object>>(
"GrupoSubgrupo",
r => r.HasOne<Grupo>().WithMany()
.HasForeignKey("IdGrupoHijo")
.HasConstraintName("Grupo_Subgrupo_ibfk_2"),
l => l.HasOne<Grupo>().WithMany()
.HasForeignKey("IdGrupoPadre")
.HasConstraintName("Grupo_Subgrupo_ibfk_1"),
j =>
{
j.HasKey("IdGrupoPadre", "IdGrupoHijo").HasName("PRIMARY");
j.ToTable("Grupo_Subgrupo");
j.HasIndex(new[] { "IdGrupoHijo" }, "IdGrupoHijo");
j.IndexerProperty<int>("IdGrupoPadre").HasColumnType("int(11)");
j.IndexerProperty<int>("IdGrupoHijo").HasColumnType("int(11)");
});
entity.HasMany(d => d.IdGrupoPadres).WithMany(p => p.IdGrupoHijos)
.UsingEntity<Dictionary<string, object>>(
"GrupoSubgrupo",
r => r.HasOne<Grupo>().WithMany()
.HasForeignKey("IdGrupoPadre")
.HasConstraintName("Grupo_Subgrupo_ibfk_1"),
l => l.HasOne<Grupo>().WithMany()
.HasForeignKey("IdGrupoHijo")
.HasConstraintName("Grupo_Subgrupo_ibfk_2"),
j =>
{
j.HasKey("IdGrupoPadre", "IdGrupoHijo").HasName("PRIMARY");
j.ToTable("Grupo_Subgrupo");
j.HasIndex(new[] { "IdGrupoHijo" }, "IdGrupoHijo");
j.IndexerProperty<int>("IdGrupoPadre").HasColumnType("int(11)");
j.IndexerProperty<int>("IdGrupoHijo").HasColumnType("int(11)");
});
});
modelBuilder.Entity<Log>(entity =>

View File

@@ -4,14 +4,34 @@ using System.Text.Json.Serialization;
namespace Entidades;
public partial class Grupo
public partial class Grupo:IComponenteSeguridad
{
public int Id { get; set; }
public string Nombre { get; set; } = null!;
[JsonIgnore]
public virtual ICollection<Grupo> IdGrupoHijos { get; set; } = new List<Grupo>();
[JsonIgnore]
public virtual ICollection<Grupo> IdGrupoPadres { get; set; } = new List<Grupo>();
[JsonIgnore]
public virtual ICollection<Cliente> Idclientes { get; set; } = new List<Cliente>();
public virtual ICollection<Permiso> Idpermisos { get; set; } = new List<Permiso>();
public void ObtenerPermisos(HashSet<Permiso> permisos, HashSet<int> visitados)
{
if (visitados.Contains(Id)) return;
visitados.Add(Id);
foreach (var permiso in Idpermisos) {
permisos.Add(permiso);
}
foreach (var subgrupo in IdGrupoPadres) {
subgrupo.ObtenerPermisos(permisos, visitados);
}
}
}

View File

@@ -4,12 +4,17 @@ using System.Text.Json.Serialization;
namespace Entidades;
public partial class Permiso
public partial class Permiso:IComponenteSeguridad
{
public int Id { get; set; }
public string Descripcion { get; set; } = null!;
[JsonIgnore]
public virtual ICollection<Grupo> Idgrupos { get; set; } = new List<Grupo>();
public void ObtenerPermisos(HashSet<Permiso> permisos, HashSet<int> visitados)
{
permisos.Add(this);
}
}

View File

@@ -0,0 +1,5 @@
namespace Entidades;
public interface IComponenteSeguridad {
public void ObtenerPermisos(HashSet<Permiso> permisos, HashSet<int> visitados);
}