using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Runtime.Serialization; using BS.Shared.Core; using BS.Shared.DataContracts.Compact; namespace BS.Shared.DataContracts { [DataContract] [DebuggerDisplay("{SupportConceptOid} {Customer}")] public class SupportConceptDC : IDataContract { private List _CostBearerRelations; private List _Ratings; [DataMember] public ActivationTypeId ActivationType { get; set; } [DataMember] public DateTime? ApprovalDate { get; set; } [DataMember] public bool? Conference { get; set; } [DataMember] public DateTime? ConferenceDate { get; set; } [DataMember] public string ConferenceVenue { get; set; } [DataMember] public bool? ConsultingNeeded { get; set; } [DataMember] public List CostBearerRelations { get { return this._CostBearerRelations ?? (this._CostBearerRelations = new List()); } set { this._CostBearerRelations = value; } } [DataMember] public List Ratings { get { return this._Ratings ?? (this._Ratings = new List()); } set { this._Ratings = value; } } [DataMember] public CompactCustomerDC Customer { get; set; } [DataMember] public UserDC DocumentUploadLockedBy { get; set; } [DataMember] public DateTime? DocumentUploadLockedOn { get; set; } [DataMember] public List Goals { get; set; } [DataMember] public string Notice { get; set; } [DataMember] public CompactEmployeeDC Originator { get; set; } [DataMember] public DateTime? RenewalSendDate { get; set; } [DataMember] public DateTime? RequisitionSendDate { get; set; } [DataMember] public long? SupportConceptOid { get; set; } [DataMember] public DateTime? SupportConceptSendDate { get; set; } [DataMember] public long? SupportConceptVersion { get; set; } [DataMember] public List ServiceAccountings { get; set; } [DataMember] public List VarFields { get; set; } public override bool Equals(object obj) { if(obj is SupportConceptDC sc) { var c = Equals(ActivationType, sc.ActivationType); var d = Equals(ApprovalDate, sc.ApprovalDate); var e = Equals(Conference, sc.Conference); var f = Equals(ConferenceDate, sc.ConferenceDate); var g = Equals(ConferenceVenue, sc.ConferenceVenue); var h = Equals(ConsultingNeeded, sc.ConsultingNeeded); var i = Utils.ListsEqual(CostBearerRelations.OrderBy(z => z.CostBearer2SupportConceptOid), sc.CostBearerRelations.OrderBy(z => z.CostBearer2SupportConceptOid)); var k = Utils.ListsEqual(Ratings.OrderBy(z => z.RatingOid), sc.Ratings.OrderBy(z => z.RatingOid)); var l = Equals(Customer, sc.Customer); var m = Equals(DocumentUploadLockedBy, sc.DocumentUploadLockedBy); var n = Equals(DocumentUploadLockedOn, sc.DocumentUploadLockedOn); var o = Utils.ListsEqual(Goals.OrderBy(z => z.ValueListEntryOid), sc.Goals.OrderBy(z => z.ValueListEntryOid)); var p = Equals(Notice, sc.Notice); var q = Equals(Originator, sc.Originator); var r = Equals(RenewalSendDate, sc.RenewalSendDate); var s = Equals(RequisitionSendDate, sc.RequisitionSendDate); var t = Utils.ListsEqual(ServiceAccountings.OrderBy(z => z.ServiceAccountingOid), sc.ServiceAccountings.OrderBy(z => z.ServiceAccountingOid)); var u = Utils.ListsEqual(VarFields.OrderBy(z => z.VarFieldDefOid), sc.VarFields.OrderBy(z => z.VarFieldDefOid)); var x = SupportConceptOid?.Equals(sc.SupportConceptOid) ?? false; var y = SupportConceptVersion?.Equals(sc.SupportConceptVersion) ?? false; return c && d && e && f && g && h && i && k && l && m && n && o && p && q && r && s && t && u && x && y; } return false; } } }