using System; using EvoCalculator.Core.Models.Calculation.Models.Prepared; namespace EvoCalculator.Core.Calculation.Columns { public class DateColumn : BaseColumn { 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] }; } } }