2020-10-14 18:00:19 +03:00

41 lines
1.3 KiB
C#

using System;
using EvoCalculator.Core.Models.Calculation.Interfaces;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns
{
public class DateColumn : IColumn<DateTime>
{
public DateTime[] Values { get; set; }
public DateColumn(int count)
{
Values = new DateTime[count];
}
public void ComputeValues(PreparedValues preparedValues,
PreparedPayments preparedPayments,
Constants.Calculation constants,
params IColumn<DateTime>[] columns)
{
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] = Values[i - 1].AddMonths(1);
}
}
}
}