- Dodatna tabela z operacijami in stanjem (končano/nekončano) - šifrant operacij - možnost določevanje privzetih operacij - Opombe na pozicij dela projekta - Pogled kooperacij na poziciji dela projekta - Izpisano številka kooperacije in kooperant
147 lines
9.3 KiB
C#
147 lines
9.3 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
using EveryThing.Models;
|
|
using EveryThing.Models.Transport;
|
|
using EveryThing.Models.Vehicle;
|
|
using Microsoft.AspNetCore.Identity;
|
|
using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
|
|
using Microsoft.EntityFrameworkCore;
|
|
using EveryThing.Models.CodeTable;
|
|
using EveryThing.Models.Invoice;
|
|
using EveryThing.Models.Project;
|
|
|
|
namespace EveryThing.Data
|
|
{
|
|
public class ApplicationDbContext : IdentityDbContext<IdentityApplicationUser, IdentityApplicationRole, int>
|
|
{
|
|
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : base(options)
|
|
{
|
|
|
|
}
|
|
|
|
public DbSet<CodeTableEmployee> CodeTableEmployees { get; set; }
|
|
public DbSet<CodeTableCountry> CodeTableCountries { get; set; }
|
|
public DbSet<CodeTableCompany> CodeTableCompanies { get; set; }
|
|
public DbSet<Vehicle> Vehicles { get; set; }
|
|
public DbSet<VehicleIssue> VehicleIssues { get; set; }
|
|
public DbSet<VehicleBreakdown> VehicleBreakdowns { get; set; }
|
|
public DbSet<VehicleDriver> VehicleDrivers { get; set; }
|
|
public DbSet<VehicleDrive> VehicleDrives { get; set; }
|
|
public DbSet<VehicleFueling> VehicleFuelings { get; set; }
|
|
public DbSet<VehicleFuelingCard> VehicleFuelingCards { get; set; }
|
|
public DbSet<VehicleFuelType> VehicleFuelTypes { get; set; }
|
|
public DbSet<VehicleGroup> VehicleGroups { get; set; }
|
|
public DbSet<VehicleIncident> VehicleIncidents { get; set; }
|
|
public DbSet<VehicleMake> VehicleMakes { get; set; }
|
|
public DbSet<VehicleMeterReading> VehicleMeterReadings { get; set; }
|
|
public DbSet<VehicleType> VehicleTypes { get; set; }
|
|
public DbSet<GeneralNote> GeneralNotes { get; set; }
|
|
public DbSet<CodeTableDepartement> CodeTableDepartements { get; set; }
|
|
public DbSet<Document> Documents { get; set; }
|
|
public DbSet<DocumentType> DocumentTypes { get; set; }
|
|
public DbSet<File> Files { get; set; }
|
|
public DbSet<CodeTableJob> CodeTableJobs { get; set; }
|
|
public DbSet<TransportLoadingOrder> TransportLoadingOrders {get; set; }
|
|
public DbSet<TransportLoadingOrderLoadUnload> TransportLoadingOrderLoadUnloads { get; set; }
|
|
public DbSet<CodeTablePartner> CodeTablePartners { get; set; }
|
|
public DbSet<Project> Projects { get; set; }
|
|
public DbSet<ProjectPart> ProjectParts { get; set; }
|
|
public DbSet<ProjectPartItem> ProjectPartItems { get; set; }
|
|
public DbSet<CodeTableItem> CodeTableItems { get; set; }
|
|
public DbSet<Invoice> Invoices { get; set; }
|
|
public DbSet<InvoiceItem> InvoiceItems { get; set; }
|
|
public DbSet<CodeTableOperation> CodeTableOperations { get; set; }
|
|
public DbSet<ProjectPartItemOperation> ProjectPartItemOperations { get; set; }
|
|
|
|
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
|
{
|
|
base.OnModelCreating(modelBuilder);
|
|
|
|
// Sprememba imen tabel in stolpcev v Identity
|
|
modelBuilder.Entity<IdentityApplicationUser>(entity =>
|
|
{
|
|
entity.ToTable("IdentityUser");
|
|
entity.Property(e => e.Id).HasColumnName("IdUser");
|
|
});
|
|
modelBuilder.Entity<IdentityApplicationRole>(entity =>
|
|
{
|
|
entity.ToTable("IdentityRole");
|
|
entity.Property(e => e.Id).HasColumnName("IdRole");
|
|
});
|
|
modelBuilder.Entity<IdentityUserRole<int>>(entity =>
|
|
{
|
|
entity.ToTable("IdentityUserRoles");
|
|
entity.Property(e => e.UserId).HasColumnName("IdUserFk");
|
|
entity.Property(e => e.RoleId).HasColumnName("IdRoleFk");
|
|
});
|
|
modelBuilder.Entity<IdentityUserClaim<int>>(entity =>
|
|
{
|
|
entity.ToTable("IdentityUserClaims");
|
|
entity.Property(e => e.Id).HasColumnName("IdUserClaim");
|
|
entity.Property(e => e.UserId).HasColumnName("IdUserFk");
|
|
});
|
|
modelBuilder.Entity<IdentityUserLogin<int>>(entity =>
|
|
{
|
|
entity.ToTable("IdentityUserLogins");
|
|
entity.Property(e => e.UserId).HasColumnName("IdUserFk");
|
|
});
|
|
modelBuilder.Entity<IdentityUserToken<int>>(entity =>
|
|
{
|
|
entity.ToTable("IdentityUserTokens");
|
|
entity.Property(e => e.UserId).HasColumnName("IdUserFk");
|
|
});
|
|
modelBuilder.Entity<IdentityRoleClaim<int>>(entity =>
|
|
{
|
|
entity.ToTable("IdentityRoleClaims");
|
|
entity.Property(e => e.Id).HasColumnName("IdRoleClaim");
|
|
entity.Property(e => e.RoleId).HasColumnName("IdRoleFk");
|
|
});
|
|
|
|
//Relacije
|
|
modelBuilder.Entity<CodeTableCountry>().HasMany(t => t.CountryCompany).WithOne(t => t.Country).OnDelete(DeleteBehavior.Restrict);
|
|
modelBuilder.Entity<CodeTableCountry>().HasMany(t => t.CountryEmployeeCountry).WithOne(t => t.Country).OnDelete(DeleteBehavior.Restrict);
|
|
modelBuilder.Entity<CodeTableCountry>().HasMany(t => t.CountryEmployeeCitizenship).WithOne(t => t.Citizenship).OnDelete(DeleteBehavior.Restrict);
|
|
modelBuilder.Entity<CodeTableCountry>().HasMany(t => t.CountryEmployeeTemporaryCountry).WithOne(t => t.TemporaryCountry).OnDelete(DeleteBehavior.Restrict);
|
|
modelBuilder.Entity<CodeTableCountry>().HasMany(t => t.CountryPartner).WithOne(t => t.Country).OnDelete(DeleteBehavior.Restrict);
|
|
modelBuilder.Entity<CodeTableCompany>().HasMany(t => t.CompanyPartner).WithOne(t => t.Company).OnDelete(DeleteBehavior.Restrict);
|
|
modelBuilder.Entity<CodeTableCompany>().HasMany(t => t.CompanyTransportLoadingOrder).WithOne(t => t.Company).OnDelete(DeleteBehavior.Restrict);
|
|
modelBuilder.Entity<CodeTableCompany>().HasMany(t => t.CompanyEmployee).WithOne(t => t.Company).OnDelete(DeleteBehavior.Restrict);
|
|
modelBuilder.Entity<CodeTableCompany>().HasMany(t => t.CompanyPrePostText).WithOne(t => t.Company).OnDelete(DeleteBehavior.Restrict);
|
|
modelBuilder.Entity<CodeTableCompany>().HasMany(t => t.CompanyProject).WithOne(t => t.Company).OnDelete(DeleteBehavior.Restrict);
|
|
modelBuilder.Entity<CodeTableCompany>().HasMany(t => t.CompanyItem).WithOne(t => t.Company).OnDelete(DeleteBehavior.Restrict);
|
|
modelBuilder.Entity<CodeTableCompany>().HasMany(t => t.CompanyInvoice).WithOne(t => t.Company).OnDelete(DeleteBehavior.Restrict);
|
|
modelBuilder.Entity<CodeTableJob>().HasMany(t => t.JobEmployee).WithOne(t => t.Job).OnDelete(DeleteBehavior.Restrict);
|
|
modelBuilder.Entity<Vehicle>().HasMany(t => t.VehicleNote).WithOne(t => t.Vehicle).OnDelete(DeleteBehavior.Restrict);
|
|
modelBuilder.Entity<Vehicle>().HasMany(t => t.VehicleVehicleDriver).WithOne(t => t.Vehicle).OnDelete(DeleteBehavior.Restrict);
|
|
modelBuilder.Entity<Vehicle>().HasMany(t => t.VehicleVehicleDrive).WithOne(t => t.Vehicle).OnDelete(DeleteBehavior.Restrict);
|
|
modelBuilder.Entity<Vehicle>().HasMany(t => t.VehicleVehicleFueling).WithOne(t => t.Vehicle).OnDelete(DeleteBehavior.Restrict);
|
|
modelBuilder.Entity<Vehicle>().HasMany(t => t.VehicleVehicleIncident).WithOne(t => t.Vehicle).OnDelete(DeleteBehavior.Restrict);
|
|
modelBuilder.Entity<Vehicle>().HasMany(t => t.VehicleVehicleIssue).WithOne(t => t.Vehicle).OnDelete(DeleteBehavior.Restrict);
|
|
modelBuilder.Entity<Vehicle>().HasMany(t => t.VehicleVehicleMeterReading).WithOne(t => t.Vehicle).OnDelete(DeleteBehavior.Restrict);
|
|
modelBuilder.Entity<Vehicle>().HasMany(t => t.VehicleTransportLoadingOrder).WithOne(t => t.Vehicle).OnDelete(DeleteBehavior.Restrict);
|
|
modelBuilder.Entity<Project>().HasMany(t => t.ProjectProjectPart).WithOne(t => t.Project).OnDelete(DeleteBehavior.Restrict);
|
|
modelBuilder.Entity<ProjectPart>().HasMany(t => t.ProjectPartProjectPartItem).WithOne(t => t.ProjectPart).OnDelete(DeleteBehavior.Restrict);
|
|
modelBuilder.Entity<CodeTableItem>().HasMany(t => t.ItemProjectPartItem).WithOne(t => t.Item).OnDelete(DeleteBehavior.Restrict);
|
|
modelBuilder.Entity<CodeTableItem>().HasMany(t => t.ItemProjectPartItemMaterial).WithOne(t => t.Material).OnDelete(DeleteBehavior.Restrict);
|
|
modelBuilder.Entity<Invoice>().HasMany(t => t.InvoiceInvoiceItem).WithOne(t => t.Invoice).OnDelete(DeleteBehavior.Restrict);
|
|
modelBuilder.Entity<Project>().HasMany(t => t.Invoices).WithOne(t => t.Project).OnDelete(DeleteBehavior.Restrict);
|
|
|
|
modelBuilder.Entity<ProjectPartItemOperation>()
|
|
.HasOne(t => t.Operation)
|
|
.WithMany(t => t.ProjectPartItemOperation)
|
|
.HasForeignKey(t => t.IdCodeTableOperationFk)
|
|
.OnDelete(DeleteBehavior.Restrict);
|
|
|
|
modelBuilder.Entity<ProjectPartItemOperation>()
|
|
.HasOne(t => t.ProjectPartItem)
|
|
.WithMany(t => t.ProjectPartItemOperation)
|
|
.HasForeignKey(t => t.IdProjectPartItemFk)
|
|
.OnDelete(DeleteBehavior.Restrict);
|
|
|
|
//modelBuilder.Entity<CodeTableOperation>().HasMany(t => t.ProjectPartItemOperations).WithMany(t => t.Operation).OnDelete(DeleteBehavior.Restrict);
|
|
}
|
|
}
|
|
}
|