diff --git a/PepLib/Data/PepDB.cs b/PepLib/Data/PepDB.cs index 169d3b9..8496710 100644 --- a/PepLib/Data/PepDB.cs +++ b/PepLib/Data/PepDB.cs @@ -1,7 +1,9 @@ using System; using System.ComponentModel.DataAnnotations.Schema; using System.Data.Entity; +using System.Data.Entity.ModelConfiguration; using System.Linq; +using System.Linq.Expressions; namespace PepLib.Data { @@ -21,461 +23,86 @@ namespace PepLib.Data protected override void OnModelCreating(DbModelBuilder modelBuilder) { - modelBuilder.Entity() - .Property(e => e.Name) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.CustID) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.Revision) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.Path) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.File) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.InUseBy) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.Status) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.StatusModifiedBy) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.Description) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.Customer) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.Comment) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.Notes) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.Material) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.MatGrade) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.Programmer) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.CreatedBy) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.Type) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.Errors) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.Hardness) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.Specification) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.UserDefined1) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.UserDefined2) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.UserDefined3) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.UserDefined4) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.UserDefined5) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.UserDefined6) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.Application) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.SourceFile) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.CadScaled) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.ModifiedBy) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.NestName) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.Drawing) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.CustID) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.DwgRevision) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.CustomerNo) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.CustomerName) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.ModifiedBy) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.NestName) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.Drawing) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.CustID) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.DwgRevision) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.DwgDesc) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.ImageFile) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.UserDefined1) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.UserDefined2) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.UserDefined3) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.UserDefined4) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.UserDefined5) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.UserDefined6) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.Description) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.SizeX) - .HasPrecision(15, 4); - - modelBuilder.Entity() - .Property(e => e.SizeY) - .HasPrecision(15, 4); - - modelBuilder.Entity() - .Property(e => e.ModifiedBy) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.NestName) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.CustID) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.CustomerName) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.Material) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.MatDescription) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.MatGrade) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.Programmer) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.Post) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.Comments) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.Remarks) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.TypeOfGas) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.UserDefined1) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.UserDefined2) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.UserDefined3) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.UserDefined4) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.UserDefined5) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.UserDefined6) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.ModifiedBy) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.Path) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.NestGenMethod) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.FeedRateScenarios) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.OutputJobCosting) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.ReportNestedDrawingsOnly) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.DisplayTimingInfo) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.OutputPostTechTable) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.WeightTypeForDisplay) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.WeightTypeForCosting) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.Errors) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.DefPlateSize) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.DefKerfDirection) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.InUse) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.ApplicationName) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.NestName) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.Drawing) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.DwgRevision) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.LoopList) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.DwgDesc) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.WorkOrder) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.Note) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.Sales) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.Remarks) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.RequiredGrade) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.JobNo) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.Sequence) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.Marking) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.ModifiedBy) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.LifetimeList) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.CustPO) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.CustID) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.NestName) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.InvPlateName) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.RemnantSize) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.PlateSize) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.HeatLot) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.UpdateStatus) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.ImageFile) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.Note) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.ProgramName) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.ModifiedBy) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.Location) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.NestedSize) - .IsUnicode(false); + ConfigureDrawingEntity(modelBuilder); + ConfigureNestDetailEntity(modelBuilder); + ConfigureNestDrawingEntity(modelBuilder); + ConfigureNestHeaderEntity(modelBuilder); + ConfigurePlateDetailEntity(modelBuilder); + ConfigurePlateHeaderEntity(modelBuilder); + } + + private void ConfigureDrawingEntity(DbModelBuilder modelBuilder) + { + ConfigureStringProperties(modelBuilder.Entity(), + e => e.Name, e => e.CustID, e => e.Revision, e => e.Path, e => e.File, + e => e.InUseBy, e => e.Status, e => e.StatusModifiedBy, e => e.Description, + e => e.Customer, e => e.Comment, e => e.Notes, e => e.Material, e => e.MatGrade, + e => e.Programmer, e => e.CreatedBy, e => e.Type, e => e.Errors, e => e.Hardness, + e => e.Specification, e => e.UserDefined1, e => e.UserDefined2, e => e.UserDefined3, + e => e.UserDefined4, e => e.UserDefined5, e => e.UserDefined6, e => e.Application, + e => e.SourceFile, e => e.CadScaled, e => e.ModifiedBy); + } + + private void ConfigureNestDetailEntity(DbModelBuilder modelBuilder) + { + ConfigureStringProperties(modelBuilder.Entity(), + e => e.NestName, e => e.Drawing, e => e.CustID, e => e.DwgRevision, + e => e.CustomerNo, e => e.CustomerName, e => e.ModifiedBy); + } + + private void ConfigureNestDrawingEntity(DbModelBuilder modelBuilder) + { + var entity = modelBuilder.Entity(); + + ConfigureStringProperties(entity, + e => e.NestName, e => e.Drawing, e => e.CustID, e => e.DwgRevision, + e => e.DwgDesc, e => e.ImageFile, e => e.UserDefined1, e => e.UserDefined2, + e => e.UserDefined3, e => e.UserDefined4, e => e.UserDefined5, e => e.UserDefined6, + e => e.Description, e => e.ModifiedBy); + + entity.Property(e => e.SizeX).HasPrecision(15, 4); + entity.Property(e => e.SizeY).HasPrecision(15, 4); + } + + private void ConfigureNestHeaderEntity(DbModelBuilder modelBuilder) + { + ConfigureStringProperties(modelBuilder.Entity(), + e => e.NestName, e => e.CustID, e => e.CustomerName, e => e.Material, + e => e.MatDescription, e => e.MatGrade, e => e.Programmer, e => e.Post, + e => e.Comments, e => e.Remarks, e => e.TypeOfGas, e => e.UserDefined1, + e => e.UserDefined2, e => e.UserDefined3, e => e.UserDefined4, e => e.UserDefined5, + e => e.UserDefined6, e => e.ModifiedBy, e => e.Path, e => e.NestGenMethod, + e => e.FeedRateScenarios, e => e.OutputJobCosting, e => e.ReportNestedDrawingsOnly, + e => e.DisplayTimingInfo, e => e.OutputPostTechTable, e => e.WeightTypeForDisplay, + e => e.WeightTypeForCosting, e => e.Errors, e => e.DefPlateSize, e => e.DefKerfDirection, + e => e.InUse, e => e.ApplicationName); + } + + private void ConfigurePlateDetailEntity(DbModelBuilder modelBuilder) + { + ConfigureStringProperties(modelBuilder.Entity(), + e => e.NestName, e => e.Drawing, e => e.DwgRevision, e => e.LoopList, + e => e.DwgDesc, e => e.WorkOrder, e => e.Note, e => e.Sales, e => e.Remarks, + e => e.RequiredGrade, e => e.JobNo, e => e.Sequence, e => e.Marking, + e => e.ModifiedBy, e => e.LifetimeList, e => e.CustPO, e => e.CustID); + } + + private void ConfigurePlateHeaderEntity(DbModelBuilder modelBuilder) + { + ConfigureStringProperties(modelBuilder.Entity(), + e => e.NestName, e => e.InvPlateName, e => e.RemnantSize, e => e.PlateSize, + e => e.HeatLot, e => e.UpdateStatus, e => e.ImageFile, e => e.Note, + e => e.ProgramName, e => e.ModifiedBy, e => e.Location, e => e.NestedSize); + } + + private void ConfigureStringProperties(EntityTypeConfiguration entity, + params Expression>[] properties) + where TEntity : class + { + foreach (var property in properties) + { + entity.Property(property).IsUnicode(false); + } } } }