Service bank feature removed from front, back and e2e testing mostly commented out in case need to add back again but in some places such as db schema it had to be removed entirely so refer here if adding back in again
184 lines
9.8 KiB
C#
184 lines
9.8 KiB
C#
using Microsoft.EntityFrameworkCore;
|
|
using Microsoft.EntityFrameworkCore.Metadata;
|
|
|
|
namespace AyaNova.Models
|
|
{
|
|
public partial class AyContext : DbContext
|
|
{
|
|
public virtual DbSet<SchemaVersion> SchemaVersion { get; set; }
|
|
public virtual DbSet<MetricMM> MetricMM { get; set; }
|
|
public virtual DbSet<MetricDD> MetricDD { get; set; }
|
|
public virtual DbSet<User> User { get; set; }
|
|
public virtual DbSet<UserOptions> UserOptions { get; set; }
|
|
public virtual DbSet<Widget> Widget { get; set; }
|
|
public virtual DbSet<GlobalBizSettings> GlobalBizSettings { get; set; }
|
|
public virtual DbSet<GlobalOpsBackupSettings> GlobalOpsBackupSettings { get; set; }
|
|
public virtual DbSet<GlobalOpsNotificationSettings> GlobalOpsNotificationSettings { get; set; }
|
|
public virtual DbSet<Event> Event { get; set; }
|
|
public virtual DbSet<SearchDictionary> SearchDictionary { get; set; }
|
|
public virtual DbSet<SearchKey> SearchKey { get; set; }
|
|
public virtual DbSet<FileAttachment> FileAttachment { get; set; }
|
|
public virtual DbSet<OpsJob> OpsJob { get; set; }
|
|
public virtual DbSet<OpsJobLog> OpsJobLog { get; set; }
|
|
public virtual DbSet<Translation> Translation { get; set; }
|
|
public virtual DbSet<TranslationItem> TranslationItem { get; set; }
|
|
public virtual DbSet<DataListSavedFilter> DataListSavedFilter { get; set; }
|
|
public virtual DbSet<DataListColumnView> DataListColumnView { get; set; }
|
|
public virtual DbSet<Tag> Tag { get; set; }
|
|
public virtual DbSet<FormCustom> FormCustom { get; set; }
|
|
public virtual DbSet<PickListTemplate> PickListTemplate { get; set; }
|
|
public virtual DbSet<License> License { get; set; }
|
|
public virtual DbSet<Memo> Memo { get; set; }
|
|
public virtual DbSet<Reminder> Reminder { get; set; }
|
|
public virtual DbSet<Review> Review { get; set; }
|
|
public virtual DbSet<Customer> Customer { get; set; }
|
|
public virtual DbSet<CustomerNote> CustomerNote { get; set; }
|
|
public virtual DbSet<Contract> Contract { get; set; }
|
|
public virtual DbSet<ContractPartOverride> ContractPartOverride { get; set; }
|
|
public virtual DbSet<ContractServiceRate> ContractServiceRate { get; set; }
|
|
public virtual DbSet<ContractServiceRateOverride> ContractServiceRateOverride { get; set; }
|
|
public virtual DbSet<ContractTravelRate> ContractTravelRate { get; set; }
|
|
public virtual DbSet<ContractTravelRateOverride> ContractTravelRateOverride { get; set; }
|
|
public virtual DbSet<HeadOffice> HeadOffice { get; set; }
|
|
public virtual DbSet<LoanUnit> LoanUnit { get; set; }
|
|
public virtual DbSet<NotifySubscription> NotifySubscription { get; set; }
|
|
public virtual DbSet<NotifyEvent> NotifyEvent { get; set; }
|
|
public virtual DbSet<Notification> Notification { get; set; }
|
|
public virtual DbSet<NotifyDeliveryLog> NotifyDeliveryLog { get; set; }
|
|
public virtual DbSet<Part> Part { get; set; }
|
|
public virtual DbSet<PartInventory> PartInventory { get; set; }
|
|
public virtual DbSet<PartWarehouse> PartWarehouse { get; set; }
|
|
public virtual DbSet<PartStockLevel> PartStockLevel { get; set; }
|
|
public virtual DbSet<PartSerial> PartSerial { get; set; }
|
|
public virtual DbSet<PartAssembly> PartAssembly { get; set; }
|
|
public virtual DbSet<PartAssemblyItem> PartAssemblyItem { get; set; }
|
|
public virtual DbSet<PM> PM { get; set; }
|
|
public virtual DbSet<PMItem> PMItem { get; set; }
|
|
public virtual DbSet<PMTemplate> PMTemplate { get; set; }
|
|
public virtual DbSet<PMTemplateItem> PMTemplateItem { get; set; }
|
|
public virtual DbSet<Project> Project { get; set; }
|
|
public virtual DbSet<PurchaseOrder> PurchaseOrder { get; set; }
|
|
public virtual DbSet<PurchaseOrderItem> PurchaseOrderItem { get; set; }
|
|
public virtual DbSet<Quote> Quote { get; set; }
|
|
public virtual DbSet<QuoteItem> QuoteItem { get; set; }
|
|
public virtual DbSet<QuoteTemplate> QuoteTemplate { get; set; }
|
|
public virtual DbSet<QuoteTemplateItem> QuoteTemplateItem { get; set; }
|
|
public virtual DbSet<Unit> Unit { get; set; }
|
|
public virtual DbSet<UnitModel> UnitModel { get; set; }
|
|
public virtual DbSet<Vendor> Vendor { get; set; }
|
|
public virtual DbSet<TaxCode> TaxCode { get; set; }
|
|
public virtual DbSet<ServiceRate> ServiceRate { get; set; }
|
|
public virtual DbSet<TravelRate> TravelRate { get; set; }
|
|
public virtual DbSet<CustomerServiceRequest> CustomerServiceRequest { get; set; }
|
|
public virtual DbSet<TaskGroup> TaskGroup { get; set; }
|
|
public virtual DbSet<TaskGroupItem> TaskGroupItem { get; set; }
|
|
|
|
|
|
//WorkOrder
|
|
public virtual DbSet<WorkOrder> WorkOrder { get; set; }
|
|
public virtual DbSet<WorkOrderItem> WorkOrderItem { get; set; }
|
|
public virtual DbSet<WorkOrderState> WorkOrderState { get; set; }
|
|
public virtual DbSet<WorkOrderItemExpense> WorkOrderItemExpense { get; set; }
|
|
public virtual DbSet<WorkOrderItemLabor> WorkOrderItemLabor { get; set; }
|
|
public virtual DbSet<WorkOrderItemLoan> WorkOrderItemLoan { get; set; }
|
|
public virtual DbSet<WorkOrderItemPart> WorkOrderItemPart { get; set; }
|
|
public virtual DbSet<WorkOrderItemPartRequest> WorkOrderItemPartRequest { get; set; }
|
|
public virtual DbSet<WorkOrderItemScheduledUser> WorkOrderItemScheduledUser { get; set; }
|
|
public virtual DbSet<WorkOrderItemTask> WorkOrderItemTask { get; set; }
|
|
public virtual DbSet<WorkOrderItemTravel> WorkOrderItemTravel { get; set; }
|
|
public virtual DbSet<WorkOrderItemUnit> WorkOrderItemUnit { get; set; }
|
|
public virtual DbSet<WorkOrderItemOutsideService> WorkOrderItemOutsideService { get; set; }
|
|
public virtual DbSet<WorkOrderStatus> WorkOrderStatus { get; set; }
|
|
public virtual DbSet<WorkOrderItemPriority> WorkOrderItemPriority { get; set; }
|
|
public virtual DbSet<WorkOrderItemStatus> WorkOrderItemStatus { get; set; }
|
|
|
|
//WorkOrderTemplate
|
|
public virtual DbSet<WorkOrderTemplate> WorkOrderTemplate { get; set; }
|
|
public virtual DbSet<WorkOrderTemplateItem> WorkOrderTemplateItem { get; set; }
|
|
|
|
public virtual DbSet<Logo> Logo { get; set; }
|
|
public virtual DbSet<Report> Report { get; set; }
|
|
public virtual DbSet<DashboardView> DashboardView { get; set; }
|
|
// public virtual DbSet<ServiceBank> ServiceBank { get; set; }
|
|
|
|
public virtual DbSet<ViewRestockRequired> ViewRestockRequired { get; set; }
|
|
|
|
|
|
|
|
//Note: had to add this constructor to work with the code in startup.cs that gets the connection string from the appsettings.json file
|
|
//and commented out the above on configuring
|
|
public AyContext(DbContextOptions<AyContext> options) : base(options)
|
|
{ }
|
|
|
|
//https://stackoverflow.com/a/64053832/8939
|
|
public void Replace<TEntity>(TEntity oldEntity, TEntity newEntity) where TEntity : class
|
|
{
|
|
ChangeTracker.TrackGraph(oldEntity, e => e.Entry.State = EntityState.Deleted);
|
|
ChangeTracker.TrackGraph(newEntity, e => e.Entry.State = e.Entry.IsKeySet ? EntityState.Modified : EntityState.Added);
|
|
}
|
|
|
|
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
|
{
|
|
|
|
//AUTOMATICALLY MATCH NAMES
|
|
//https://andrewlock.net/customising-asp-net-core-identity-ef-core-naming-conventions-for-postgresql/
|
|
foreach (var entity in modelBuilder.Model.GetEntityTypes())
|
|
{
|
|
// Replace table names
|
|
var entityName = entity.GetTableName().ToLowerInvariant();
|
|
if (!entityName.StartsWith("view"))
|
|
entity.SetTableName("a" + entityName);
|
|
else
|
|
entity.SetTableName(entityName);
|
|
|
|
|
|
// Replace column names
|
|
foreach (var property in entity.GetProperties())
|
|
{
|
|
//Any object that has a concurrencytoken field
|
|
//set it up to work properly with PostgreSQL
|
|
if (property.Name == "Concurrency")
|
|
{
|
|
property.SetColumnName("xmin");
|
|
property.SetColumnType("xid");
|
|
property.ValueGenerated = ValueGenerated.OnAddOrUpdate;
|
|
property.IsConcurrencyToken = true;
|
|
}
|
|
else
|
|
property.SetColumnName(property.Name.ToLowerInvariant());
|
|
}
|
|
|
|
foreach (var key in entity.GetKeys())
|
|
key.SetName(key.GetName().ToLowerInvariant());
|
|
|
|
foreach (var key in entity.GetForeignKeys())
|
|
key.SetConstraintName(key.GetConstraintName().ToLowerInvariant());
|
|
|
|
foreach (var index in entity.GetIndexes())
|
|
index.SetDatabaseName(index.GetDatabaseName().ToLowerInvariant());
|
|
|
|
}
|
|
|
|
///////////////////////////////
|
|
//SERIALIZED OBJECTS
|
|
//
|
|
modelBuilder.Entity<PurchaseOrder>().Property(z => z.Serial).UseIdentityByDefaultColumn();
|
|
modelBuilder.Entity<Widget>().Property(z => z.Serial).UseIdentityByDefaultColumn();
|
|
modelBuilder.Entity<WorkOrder>().Property(z => z.Serial).UseIdentityByDefaultColumn();
|
|
modelBuilder.Entity<Quote>().Property(z => z.Serial).UseIdentityByDefaultColumn();
|
|
modelBuilder.Entity<PM>().Property(z => z.Serial).UseIdentityByDefaultColumn();
|
|
//## NOTE: if more added here then must also update globalbizsettingscontroller.seeds and client
|
|
|
|
//////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//-----------
|
|
}
|
|
|
|
}
|
|
|
|
} |