41 lines
1.3 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|
|
} |