Files
BeWoPlaner/Shared/DataContracts/SupportConceptDC.cs
Lyndon Jetten 659ec6b3eb Kalender:
Die Abfrage nach der Ressourcenbelegung kommt nur ein mal und das Abbrechen des Speicherns hat keinen "kaputten" Reload zur Folge
    Das Löschen eines Serientermins mit veränderten oder gelöschten Elementen führt zu keiner Exception mehr, da ich den Service-Aufruf auf synchron geändert habe.
    Es gibt allerdings noch Bugs! -> Serientermin erstellen und ein Element davon ändern führt zu einer doppelten Abfrage, ausgelöst durch die Überlappungsprüfung, die eine    Überlappung mit der Serie selbst feststellt!
2020-11-20 23:28:09 +01:00

133 lines
4.6 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using BS.Shared.Core;
using BS.Shared.DataContracts.Compact;
namespace BS.Shared.DataContracts
{
[DataContract]
public class SupportConceptDC : IDataContract
{
private List<SupportConceptCostBearerRelDC> _CostBearerRelations;
private List<RatingDC> _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<SupportConceptCostBearerRelDC> CostBearerRelations
{
get
{
return this._CostBearerRelations ?? (this._CostBearerRelations = new List<SupportConceptCostBearerRelDC>());
}
set
{
this._CostBearerRelations = value;
}
}
[DataMember]
public List<RatingDC> Ratings
{
get
{
return this._Ratings ?? (this._Ratings = new List<RatingDC>());
}
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<ValueListEntryDC> 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<ServiceAccountingDC> ServiceAccountings { get; set; }
[DataMember]
public List<VarFieldDC> 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;
}
}
}