2020-10-23 14:10:57 +03:00

39 lines
1.4 KiB
C#

using System;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns
{
public class DateColumn : BaseColumn<DateTime>
{
public DateColumn(int count) : base(count)
{
}
public void ComputeValues(PreparedValues preparedValues, Constants.Calculation constants)
{
Values[0] = preparedValues.DogDate;
Values[1] = Values[0];
Values[2] = preparedValues.DeliveryTime switch
{
100000000 => preparedValues.PaymentDateNew == null
? Values[1].AddMonths(1)
: preparedValues.PaymentDateNew ?? DateTime.MinValue,
100000001 => preparedValues.PaymentDateNew == null
? Values[1].AddDays(constants.DeliveryDays)
: preparedValues.PaymentDateNew ?? DateTime.MinValue,
_ => Values[2]
};
for (var i = 3; i < preparedValues.Nmper + 1; i++)
Values[i] = preparedValues.DeliveryTime switch
{
100000000 => preparedValues.PaymentDateNew == null
? Values[1].AddMonths(i - 1)
: Values[2].AddMonths(i - 2),
100000001 => Values[2].AddMonths(i - 2),
_ => Values[2]
};
}
}
}