diff --git a/Gremlin/GremlinData/DBClasses/DbHelper.cs b/Gremlin/GremlinData/DBClasses/DbHelper.cs index 95a2820..68619ad 100644 --- a/Gremlin/GremlinData/DBClasses/DbHelper.cs +++ b/Gremlin/GremlinData/DBClasses/DbHelper.cs @@ -79,8 +79,6 @@ namespace Gremlin.GremlinData.DBClasses /// Initialzes the Db with enum data: product lines, account types, submarkets { - DateTime now = DateTime.Now; - //PRODUCT LINES string[] ProductLineAbbrviations = { "XF", "LM", "XA", "RB", "GE", "9Z", "9P", "9M", "9K", "9H", @@ -1051,6 +1049,8 @@ namespace Gremlin.GremlinData.DBClasses { // Read current line fields, pointer moves to the next line. string[] fields = csvParser.ReadFields(); + //string productNumber = fields[0]; + //string? optionNumber = fields[1] == "" ? null : fields[1]; CustomDescription ImportedCD = new() { ProductNumber = fields[0], diff --git a/Gremlin/GremlinData/DBClasses/EntityConfiguration.cs b/Gremlin/GremlinData/DBClasses/EntityConfiguration.cs index 2811a6f..8feb323 100644 --- a/Gremlin/GremlinData/DBClasses/EntityConfiguration.cs +++ b/Gremlin/GremlinData/DBClasses/EntityConfiguration.cs @@ -64,7 +64,6 @@ namespace Gremlin.GremlinData.DBClasses entity.Property(e => e.OptInStatus).HasDefaultValue(null); entity.Property(e => e.IsReference).HasDefaultValue(false); entity.Property(e => e.Notes); - entity.Property(e => e.LinkToSAP); entity.Property(e => e.ValidatedContact).HasDefaultValue(false); entity.Property(e => e.DataCreationDate).HasColumnType("TIMESTAMP").HasDefaultValueSql("CURRENT_TIMESTAMP").ValueGeneratedOnAdd(); @@ -121,8 +120,8 @@ namespace Gremlin.GremlinData.DBClasses { public void Configure(EntityTypeBuilder entity) { - entity.HasKey(e => e.QuoteId); - entity.HasOne(p => p.Quote).WithMany(d => d.LineItems).HasForeignKey(fk => fk.QuoteId); + entity.HasKey(e => e.LineItemId); + entity.HasOne(p => p.Quote).WithMany(d => d.LineItems).HasForeignKey(fk => fk.QuoteId).IsRequired(true).OnDelete(DeleteBehavior.Cascade); entity.Property(e => e.Position).IsRequired(true); entity.Property(e => e.Amount).IsRequired(true); @@ -159,8 +158,8 @@ namespace Gremlin.GremlinData.DBClasses public void Configure(EntityTypeBuilder entity) { entity.HasKey(e => e.ProductId); - entity.HasOne(d => d.CustomDescription).WithMany(p => p.Products).IsRequired(false).OnDelete(DeleteBehavior.Restrict); - entity.HasOne(p => p.ProductLine).WithMany(d => d.Products).IsRequired(true).OnDelete(DeleteBehavior.Restrict); + entity.HasOne(d => d.CustomDescription).WithMany(p => p.Products).HasForeignKey("CustomDescriptionId").IsRequired(false).OnDelete(DeleteBehavior.Restrict); + entity.HasOne(p => p.ProductLine).WithMany(d => d.Products).HasForeignKey("ProductLineCode").IsRequired(true).OnDelete(DeleteBehavior.Restrict); entity.Property(e => e.ProductNumber).IsRequired(true); entity.Property(e => e.OptionNumber); diff --git a/Gremlin/GremlinData/DBClasses/GenericImporter.cs b/Gremlin/GremlinData/DBClasses/GenericImporter.cs index cdd45fc..ec17e28 100644 --- a/Gremlin/GremlinData/DBClasses/GenericImporter.cs +++ b/Gremlin/GremlinData/DBClasses/GenericImporter.cs @@ -321,7 +321,7 @@ namespace Gremlin.GremlinData.DBClasses DataValidUntil = FarInTheFuture, DataVersionComment = "Initial Importer by CD-ImporterFomCsv", }; - ImportedCD.Products = new(); + ImportedCD.Products = new List(); ImportedCD.Supplier = new(); ImportedCD.Supplier.AccountName = fields[2] is "" or "RB" ? "Agilent Technologies" : fields[2]; ImportedCD.DataCreationDate = ImportedCD.DataValidFrom = ImportedCD.DataModificationDate = DateTime.Now; diff --git a/Gremlin/GremlinData/EntityClasses/Account.cs b/Gremlin/GremlinData/EntityClasses/Account.cs index 2d3ac32..86ae3d2 100644 --- a/Gremlin/GremlinData/EntityClasses/Account.cs +++ b/Gremlin/GremlinData/EntityClasses/Account.cs @@ -11,7 +11,7 @@ namespace Gremlin.GremlinData.EntityClasses //foreign keys: public IList Contacts { get; set; } - public int? ParentAccountId { get; set; } + public uint? ParentAccountId { get; set; } public AccountType AccountType { get; set; } public SubMarket SubMarket { get; set; } public IList CustomDescriptions { get; set; } diff --git a/Gremlin/GremlinData/EntityClasses/Contact.cs b/Gremlin/GremlinData/EntityClasses/Contact.cs index e4a82cf..ab0b6d7 100644 --- a/Gremlin/GremlinData/EntityClasses/Contact.cs +++ b/Gremlin/GremlinData/EntityClasses/Contact.cs @@ -44,8 +44,7 @@ namespace Gremlin.GremlinData.EntityClasses public string SAPApplicationInterest { get; set; } public string SAPJobLevel { get; set; } public string SAPCompetitiveIBase { get; set; } - public string LinkToSAP { get; set; } - + //metadata: public DateTime DataCreationDate { get; set; } public DateTime DataModificationDate { get; set; } diff --git a/Gremlin/GremlinData/EntityClasses/CustomDescription.cs b/Gremlin/GremlinData/EntityClasses/CustomDescription.cs index 98c4840..1861aff 100644 --- a/Gremlin/GremlinData/EntityClasses/CustomDescription.cs +++ b/Gremlin/GremlinData/EntityClasses/CustomDescription.cs @@ -9,7 +9,7 @@ namespace Gremlin.GremlinData.EntityClasses public uint CustomDescriptionId { get; set; } //foreign keys: - public uint ProductId { get; set; } + //public uint ProductId { get; set; } public uint AccountId { get; set; } //navigation properties: diff --git a/Gremlin/GremlinData/EntityClasses/Product.cs b/Gremlin/GremlinData/EntityClasses/Product.cs index 7cc85a7..0ec2f8e 100644 --- a/Gremlin/GremlinData/EntityClasses/Product.cs +++ b/Gremlin/GremlinData/EntityClasses/Product.cs @@ -12,7 +12,7 @@ namespace Gremlin.GremlinData.EntityClasses public ProductLine ProductLine { get; set; } //foreign keys - public int CustomDescriptionId { get; set; } + public uint CustomDescriptionId { get; set; } public string ProductLineCode { get; set; } //Agilent-specific properties: diff --git a/Gremlin/GremlinData/EntityClasses/Quote.cs b/Gremlin/GremlinData/EntityClasses/Quote.cs index e8f31ea..63492dc 100644 --- a/Gremlin/GremlinData/EntityClasses/Quote.cs +++ b/Gremlin/GremlinData/EntityClasses/Quote.cs @@ -9,18 +9,18 @@ namespace Gremlin.GremlinData.EntityClasses public uint QuoteId { get; set; } //foreign keys: + public Contact Recipient { get; set; } public IList LineItems { get; set; } //navigation properties: //NONE //class properties: + public Contact SalesRep { get; set; } public string QuotationNumber { get; set; } public DateTime QuotationDate { get; set; } public DateTime ValidUntil { get; set; } public byte ValidFor { get; set; } - public Contact Recipient { get; set; } - public Contact SalesRep { get; set; } public decimal TotalListprice { get; set; } public decimal TotalDiscount { get; set; } public decimal TotalNet { get; set; } diff --git a/Gremlin/GremlinData/EntityClasses/RUSetting.cs b/Gremlin/GremlinData/EntityClasses/RUSetting.cs index 285f36a..d3f07f4 100644 --- a/Gremlin/GremlinData/EntityClasses/RUSetting.cs +++ b/Gremlin/GremlinData/EntityClasses/RUSetting.cs @@ -13,15 +13,15 @@ namespace Gremlin.GremlinData.EntityClasses //navigation properties public RegisteredUser RegisteredUser { get; set; } - //standard properties: - public DateTime DataCreationDate { get; set; } - public DateTime DataModificationDate { get; set; } - public string DataModificationByUser { get; set; } - //class properties public string SettingKey { get; set; } public string SettingValue { get; set; } + //metadata (subset of IMetadata) + public DateTime DataCreationDate { get; set; } + public DateTime DataModificationDate { get; set; } + public string DataModificationByUser { get; set; } + //Constructur public RUSetting() { diff --git a/Gremlin/GremlinData/EntityClasses/RegisteredUser.cs b/Gremlin/GremlinData/EntityClasses/RegisteredUser.cs index 3643792..0335a9d 100644 --- a/Gremlin/GremlinData/EntityClasses/RegisteredUser.cs +++ b/Gremlin/GremlinData/EntityClasses/RegisteredUser.cs @@ -11,14 +11,14 @@ namespace Gremlin.GremlinData.EntityClasses //navigation properties public IList RUSettings { get; set; } - //standard properties - public DateTime DataCreationDate { get; set; } - public DateTime DataModificationDate { get; set; } - public string DataModificationByUser { get; set; } - //class properties public string UserName { get; set; } public string PasswordHash { get; set; } + + //metadata (subset of IMetadata) + public DateTime DataCreationDate { get; set; } + public DateTime DataModificationDate { get; set; } + public string DataModificationByUser { get; set; } //Constructur public RegisteredUser()