146 lines
5.0 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|
|
} |