39 lines
1.4 KiB
C#
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]
|
|
};
|
|
}
|
|
}
|
|
} |