Commit 0b4f69f6 authored by Eric Dieckman's avatar Eric Dieckman
Browse files

Add entity type configuration for access domain to vlan/firewall

parent bea4e9bb
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -15,6 +15,8 @@ internal sealed class TableNames
    internal const string Locations = "locations";
    internal const string LocationVlans = "locations_vlans";
    internal const string PaloAltoAccessDomains = "pa_access_domains";
    internal const string PaloAltoAccessDomainsToFirewalls = "pa_access_domains_pa_firewalls";
    internal const string PaloAltoAccessDomainsToVsyses = "pa_access_domains_pa_vsyses";
    internal const string PaloAltoFirewalls = "pa_firewalls";
    internal const string PaloAltoFirewallVlans = "pa_firewalls_vlans";
    internal const string PaloAltoVsyses = "pa_vsyses";
+4 −7
Original line number Diff line number Diff line
@@ -27,7 +27,7 @@ public class LocationEntityTypeConfiguration : IEntityTypeConfiguration<Location
            .HasMany(l => l.Vlans)
            .WithMany() // You can add .WithMany(v => v.Locations) if you add a Locations collection to Vlan
            .UsingEntity<Dictionary<string, object>>(
                "locations_vlans",
                TableNames.LocationVlans,
                j => j
                    .HasOne<Vlan>()
                    .WithMany()
@@ -42,14 +42,11 @@ public class LocationEntityTypeConfiguration : IEntityTypeConfiguration<Location

                    j.HasKey("location_vlan_id");

                    j.Property<long>("location_vlan_id")
                        .HasColumnName("location_vlan_id");
                    j.Property<long>("location_vlan_id");

                    j.Property<long>("location_id")
                        .HasColumnName("location_id");
                    j.Property<long>("location_id");

                    j.Property<long>("vlan_id")
                        .HasColumnName("vlan_id");
                    j.Property<long>("vlan_id");
                }
            );
    }
+60 −0
Original line number Diff line number Diff line
@@ -21,6 +21,66 @@ public class PaloAltoAccessDomainEntityTypeConfiguration : IEntityTypeConfigurat

        builder.Property(e => e.ManifestPath)
            .HasMaxLength(500);

        // variables for columns names
        string accessDomainVsysIdColumnName = "pa_access_domain_id;
        string vsysIdColumnName = "pa_vsys_id";
        string accessDomainIdColumName = "pa_access_domain_id";
        string accessDomainFirewallIdColumnName = "pa_access_domains_pa_firewalls_id";
        string firewallIdColumnName = "pa_firewall_id";


        builder.HasMany(e => e.Vsyses)
            .WithMany()
            .UsingEntity<Dictionary<string, object>>(
                TableNames.PaloAltoAccessDomainsToVsyses,
                j => j
                    .HasOne<PaloAltoVsys>()
                    .WithMany()
                    .HasForeignKey(vsysIdColumnName),
                j => j
                    .HasOne<PaloAltoAccessDomain>()
                    .WithMany()
                    .HasForeignKey(accessDomainIdColumName),
                j =>
                {
                    j.ToTable(TableNames.PaloAltoAccessDomainsToVsyses);

                    j.HasKey(accessDomainVsysIdColumnName);

                    j.Property<long>(accessDomainVsysIdColumnName);

                    j.Property<long>(accessDomainIdColumName);

                    j.Property<long>(vsysIdColumnName);
                }
            );

        builder.HasMany(e => e.Firewalls)
            .WithMany()
            .UsingEntity<Dictionary<string, object>>(
                TableNames.PaloAltoAccessDomainsToFirewalls,
                j => j
                    .HasOne<PaloAltoFirewall>()
                    .WithMany()
                    .HasForeignKey(firewallIdColumnName),
                j => j
                    .HasOne<PaloAltoAccessDomain>()
                    .WithMany()
                    .HasForeignKey(accessDomainIdColumName),
                j =>
                {
                    j.ToTable(TableNames.PaloAltoAccessDomainsToVsyses);

                    j.HasKey(accessDomainFirewallIdColumnName);

                    j.Property<long>(accessDomainFirewallIdColumnName);

                    j.Property<long>(firewallIdColumnName);

                    j.Property<long>(accessDomainIdColumName);
                }
            );
    }
}
+1 −1
Original line number Diff line number Diff line
@@ -17,7 +17,7 @@ public class PaloAltoVsysEntityTypeConfiguration : IEntityTypeConfiguration<Palo
            .HasColumnName("descr");

        builder.HasOne(e => e.Firewall)
            .WithMany()
            .WithMany(e => e.Vsyses)
            .HasForeignKey("firewall_id");
    }
}
+10 −0
Original line number Diff line number Diff line
@@ -2,6 +2,12 @@ namespace Cals.Visor.Models;

public class PaloAltoAccessDomain
{
    public PaloAltoAccessDomain()
    {
        Firewalls = new List<PaloAltoFirewall>();
        Vsyses = new List<PaloAltoVsys>();
    }

    public long? AccessDomainId { get; set; }

    public string? Name { get; set; }
@@ -12,6 +18,10 @@ public class PaloAltoAccessDomain

    public bool? IsActive { get; set; }

    public IList<PaloAltoFirewall> Firewalls { get; set; }

    public IList<PaloAltoVsys> Vsyses { get; set; }

    public DateTime? CreatedAt { get; set; }

    public DateTime? UpdatedAt { get; set; }
Loading