Files
raven/server/AyaNova/models/AyContext.cs
John Cardinal 59fd41d8d0 CHECKPOINT COMMIT - POST SERVICE BANK REMOVAL
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
2021-06-04 22:23:21 +00:00

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
//////////////////////////////////////////////////////////////
//-----------
}
}
}