45 lines
1.4 KiB
C#
45 lines
1.4 KiB
C#
using System.Linq;
|
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
|
|
|
namespace EvoCalculator.Core.Calculation.Columns
|
|
{
|
|
public class InsuranceBonusExpensesColumn : BaseColumn<double>
|
|
{
|
|
public InsuranceBonusExpensesColumn(int count) : base(count)
|
|
{
|
|
}
|
|
|
|
public void ComputeValues(PreparedValues preparedValues)
|
|
{
|
|
for (var i = 0; i < Values.Length; i++)
|
|
{
|
|
Values[i] = 0;
|
|
}
|
|
|
|
for (var i = 2; i < Values.Length; i += i == 2 ? 11 : 12)
|
|
{
|
|
if (i <= preparedValues.NmperInsurance)
|
|
{
|
|
if (preparedValues.NmperInsurance - i >= 3)
|
|
{
|
|
if (preparedValues.NmperInsurance - i < 16 - 1)
|
|
{
|
|
Values[i] = preparedValues.InsuranceBonus / preparedValues.NmperInsurance *
|
|
(preparedValues.NmperInsurance - i + 1);
|
|
}
|
|
else
|
|
{
|
|
Values[i] = preparedValues.InsuranceBonus / preparedValues.NmperInsurance * 12;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Values[i] = 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
Values[0] = Values.Skip(1).Sum(x => x);
|
|
}
|
|
}
|
|
} |