cambios para tener composite
This commit is contained in:
@@ -419,6 +419,42 @@ public partial class AlquilaFacilContext : DbContext
|
|||||||
entity.Property(e => e.Nombre)
|
entity.Property(e => e.Nombre)
|
||||||
.HasMaxLength(12)
|
.HasMaxLength(12)
|
||||||
.HasColumnName("nombre");
|
.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 =>
|
modelBuilder.Entity<Log>(entity =>
|
||||||
|
|||||||
@@ -4,14 +4,34 @@ using System.Text.Json.Serialization;
|
|||||||
|
|
||||||
namespace Entidades;
|
namespace Entidades;
|
||||||
|
|
||||||
public partial class Grupo
|
public partial class Grupo:IComponenteSeguridad
|
||||||
{
|
{
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
|
|
||||||
public string Nombre { get; set; } = null!;
|
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]
|
[JsonIgnore]
|
||||||
public virtual ICollection<Cliente> Idclientes { get; set; } = new List<Cliente>();
|
public virtual ICollection<Cliente> Idclientes { get; set; } = new List<Cliente>();
|
||||||
|
|
||||||
public virtual ICollection<Permiso> Idpermisos { get; set; } = new List<Permiso>();
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ using System.Text.Json.Serialization;
|
|||||||
|
|
||||||
namespace Entidades;
|
namespace Entidades;
|
||||||
|
|
||||||
public partial class Permiso
|
public partial class Permiso:IComponenteSeguridad
|
||||||
{
|
{
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
|
|
||||||
@@ -12,4 +12,9 @@ public partial class Permiso
|
|||||||
|
|
||||||
[JsonIgnore]
|
[JsonIgnore]
|
||||||
public virtual ICollection<Grupo> Idgrupos { get; set; } = new List<Grupo>();
|
public virtual ICollection<Grupo> Idgrupos { get; set; } = new List<Grupo>();
|
||||||
|
|
||||||
|
public void ObtenerPermisos(HashSet<Permiso> permisos, HashSet<int> visitados)
|
||||||
|
{
|
||||||
|
permisos.Add(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
5
Entidades/SeguridadComposite/ComponenteSeguridad.cs
Normal file
5
Entidades/SeguridadComposite/ComponenteSeguridad.cs
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
namespace Entidades;
|
||||||
|
|
||||||
|
public interface IComponenteSeguridad {
|
||||||
|
public void ObtenerPermisos(HashSet<Permiso> permisos, HashSet<int> visitados);
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user