Files
BeWoPlaner/Shared/DataContracts/SupportConceptApprovalPeriodDC.cs
2024-12-30 16:12:47 +01:00

146 lines
5.0 KiB
C#

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Runtime.Serialization;
using BS.Shared.Core;
namespace BS.Shared.DataContracts
{
[DataContract]
[DebuggerDisplay("{Span} {ApprovedBEPerInterval}/{ApprovedBETotal}")]
public class SupportConceptApprovalPeriodDC : IDataContract
{
[DataMember]
public SupportConceptApprovalInterval? ApprovedBEInterval { get; set; }
[DataMember]
public decimal? ApprovedBEPerInterval { get; set; }
[DataMember]
public SupportConceptApprovalInterval? ContactCountInterval { get; set; }
[DataMember]
public decimal? ContactCountPerInterval { get; set; }
[DataMember]
public decimal? ApprovedBETotal { get; set; }
[DataMember]
public decimal? ApprovedFixedAmount { get; set; }
[DataMember]
public SupportConceptApprovalInterval? ApprovedFixedAmountInterval { get; set; }
[DataMember]
public DateTime? EndDate { get; set; }
[DataMember]
public bool IsApprovedBEShifting { get; set; }
[DataMember]
public bool IsApprovedFixedAmountShifting { get; set; }
[DataMember]
public decimal? MonthlyPayment { get; set; }
[DataMember]
public String Notice { get; set; }
public DateTimeSpan Span
{
get
{
var sd = DateTime.MinValue;
var ed = DateTime.MaxValue;
if (StartDate.HasValue)
{
sd = StartDate.Value;
}
if (EndDate.HasValue)
{
ed = EndDate.Value;
}
return new DateTimeSpan
{
StartDateTime = sd,
EndDateTime = ed
};
}
}
[DataMember]
public DateTime? StartDate { get; set; }
[DataMember]
public decimal? Percentage { get; set; }
[DataMember]
public long? SupportConceptApprovalPeriodOid { get; set; }
[DataMember]
public long? SupportConceptApprovalPeriodVersion { get; set; }
[DataMember]
public ServiceCategoryDC ServiceCategory { get; set; }
[DataMember]
public List<SupportConceptApprovalPeriodEmployeeRelDC> SupportConceptApprovalPeriodEmployeeRelations { get; set; }
[DataMember]
public BudgetDC BudgetDC { get; set; }
[DataMember]
public Bewilligungsart Bewilligungsart { get; set; }
public override bool Equals(object obj)
{
if(obj is SupportConceptApprovalPeriodDC x)
{
var a = Equals(ApprovedBEInterval, x.ApprovedBEInterval);
var b = Equals(ApprovedBEPerInterval, x.ApprovedBEPerInterval);
var c = Equals(ContactCountInterval, x.ContactCountInterval);
var d = Equals(ContactCountPerInterval, x.ContactCountPerInterval);
var e = Equals(ApprovedBETotal, x.ApprovedBETotal);
var f = Equals(ApprovedFixedAmount, x.ApprovedFixedAmount);
var g = Equals(ApprovedFixedAmountInterval, x.ApprovedFixedAmountInterval);
var h = Equals(EndDate, x.EndDate);
var i = Equals(IsApprovedBEShifting, x.IsApprovedBEShifting);
var j = Equals(IsApprovedFixedAmountShifting, x.IsApprovedFixedAmountShifting);
var k = Equals(MonthlyPayment, x.MonthlyPayment);
var l = Equals(Span, x.Span);
var m = Equals(StartDate, x.StartDate);
var n = Equals(Percentage, x.Percentage);
var o = Equals(SupportConceptApprovalPeriodOid, x.SupportConceptApprovalPeriodOid);
var p = Equals(SupportConceptApprovalPeriodVersion, x.SupportConceptApprovalPeriodVersion);
var q = Equals(ServiceCategory, x.ServiceCategory);
var r = Equals(BudgetDC, x.BudgetDC);
var s = Utils.ListsEqual(SupportConceptApprovalPeriodEmployeeRelations, x.SupportConceptApprovalPeriodEmployeeRelations);
var t = Equals(Bewilligungsart, x.Bewilligungsart);
return a && b && c && d && e && f && g && h && i && j && k && l && m && n && o && p && q && r && s && t;
}
return false;
}
public override int GetHashCode()
{
unchecked
{
const int hashingBase = (int)2166136261;
const int hashingMultiplier = 16777619;
var hash = hashingBase;
hash = (hash * hashingMultiplier) ^ (SupportConceptApprovalPeriodOid?.GetHashCode() ?? 0);
hash = (hash * hashingMultiplier) ^ (SupportConceptApprovalPeriodVersion?.GetHashCode() ?? 0);
return hash;
}
}
}
}