namespace Gremlin_BlazorServer.Data.EntityClasses { public class Account : IMetadata //: IEquatable { //primary key: public uint AccountId { get; set; } //foreign keys: public IList Contacts { get; set; } public uint ParentAccountId { get; set; } public AccountType? AccountType { get; set; } public SubMarket? SubMarket { get; set; } public IList CustomDescriptions { get; set; } //class properties: public string AccountName { get; set; } public string Notes { get; set; } public string Street { get; set; } public uint Zip { get; set; } public string City { get; set; } public string FloorOrBuilding { get; set; } public float Longitude { get; set; } public float Latitude { get; set; } public string PhoneNumber { get; set; } public string FaxNumber { get; set; } public string Webpage { get; set; } public string EMail { get; set; } //Agilent-specific Properties: public uint SapAccountNumber { get; set; } public DateTime AccountCreatedInSapOn { get; set; } //metadata: public DateTime DataCreationDate { get; set; } = DateTime.Now; public DateTime DataModificationDate { get; set; } = DateTime.Now; public DateTime DataValidFrom { get; set; } = DateTime.Now; public DateTime DataValidUntil { get; set; } = DateTime.MaxValue; public string DataModificationByUser { get; set; } = "Gremlin"; public uint DataVersionNumber { get; set; } public string DataVersionComment { get; set; } public string DataStatus { get; set; } //IBase //tbd //public bool Equals(Account other) //{ // if (other == null) return false; // if (this == null) return false; // if (this.SAPAccountNumber == other.SAPAccountNumber) return true; // else return false; //} //public static bool operator ==(Account account1, Account account2) //{ // if (account1.SAPAccountNumber == 0) return false; // if (account2.SAPAccountNumber == 0) return false; // if (account1.SAPAccountNumber == account2.SAPAccountNumber) return true; // else return false; //} //public static bool operator !=(Account account1, Account account2) //{ // if (account1.SAPAccountNumber == 0) return false; // if (account2.SAPAccountNumber == 0) return false; // if (account1.SAPAccountNumber == account2.SAPAccountNumber) return false; // else return true; //} //public override bool Equals(object obj) //{ // if (obj == null) return false; // Account accountObj = obj as Account; // if (accountObj == null) return false; // else return base.Equals(obj); //} //public override int GetHashCode() ///// /////Returns the (unique) SAP Account ID. ///// //{ // return Convert.ToInt32(this.SAPAccountNumber); //} public List AddIfUniqueTo(List accounts) { if (accounts.Count > 0 && SapAccountNumber == accounts[^1].SapAccountNumber) { return accounts; } foreach (Account account in accounts) { if (SapAccountNumber == account.SapAccountNumber) { return accounts; } } accounts.Add(this); return accounts; } } }