diff --git a/EvoCalculator.Core.Models/PostCalculation/Models/Manager/ManagerResult.cs b/EvoCalculator.Core.Models/PostCalculation/Models/Manager/ManagerResult.cs index fc9c9ff..ce287b4 100644 --- a/EvoCalculator.Core.Models/PostCalculation/Models/Manager/ManagerResult.cs +++ b/EvoCalculator.Core.Models/PostCalculation/Models/Manager/ManagerResult.cs @@ -6,6 +6,7 @@ namespace EvoCalculator.Core.Models.PostCalculation.Models.Manager; public class ManagerResult { public PreparedValues PreparedValues { get; set; } + public object PostValues { get; set; } public object NextValues { get; set; } public object Columns { get; set; } public List Errors { get; set; } diff --git a/EvoCalculator.Core.PostCalculation/EvoCalculator.Core.PostCalculation.csproj b/EvoCalculator.Core.PostCalculation/EvoCalculator.Core.PostCalculation.csproj index 8030d50..7dc7779 100644 --- a/EvoCalculator.Core.PostCalculation/EvoCalculator.Core.PostCalculation.csproj +++ b/EvoCalculator.Core.PostCalculation/EvoCalculator.Core.PostCalculation.csproj @@ -5,9 +5,9 @@ - - - + + + diff --git a/EvoCalculator.Core.PostCalculation/v1/Managers/CalculateByIRRAndSum.cs b/EvoCalculator.Core.PostCalculation/v1/Managers/CalculateByIRRAndSum.cs index 075d19f..d6704b2 100644 --- a/EvoCalculator.Core.PostCalculation/v1/Managers/CalculateByIRRAndSum.cs +++ b/EvoCalculator.Core.PostCalculation/v1/Managers/CalculateByIRRAndSum.cs @@ -223,9 +223,13 @@ public static partial class CalculateManager * NEXT */ + var postValues = new PostValues.PostValues(); + postValues.ContractEconomy.ComputeValue(nextCashflowMSFOColumn, nextCreditColumn, preparedValues); + return new ManagerResult { + PostValues = postValues, NextValues = nextValues.GetValues(), PreparedValues = preparedValues, Columns = new diff --git a/EvoCalculator.Core.PostCalculation/v1/Managers/CalculateByTotalExpected.cs b/EvoCalculator.Core.PostCalculation/v1/Managers/CalculateByTotalExpected.cs index 97edc7b..fb9febe 100644 --- a/EvoCalculator.Core.PostCalculation/v1/Managers/CalculateByTotalExpected.cs +++ b/EvoCalculator.Core.PostCalculation/v1/Managers/CalculateByTotalExpected.cs @@ -156,8 +156,13 @@ public static partial class CalculateManager * NEXT */ + var postValues = new PostValues.PostValues(); + postValues.ContractEconomy.ComputeValue(nextCashflowMSFOColumn, nextCreditColumn, preparedValues); + + return new ManagerResult { + PostValues = postValues, NextValues = nextValues.GetValues(), PreparedValues = preparedValues, Columns = new diff --git a/EvoCalculator.Core.PostCalculation/v1/Managers/CalculateDefault.cs b/EvoCalculator.Core.PostCalculation/v1/Managers/CalculateDefault.cs index 2d8b68d..a645329 100644 --- a/EvoCalculator.Core.PostCalculation/v1/Managers/CalculateDefault.cs +++ b/EvoCalculator.Core.PostCalculation/v1/Managers/CalculateDefault.cs @@ -181,8 +181,13 @@ public static partial class CalculateManager * NEXT */ + var postValues = new PostValues.PostValues(); + postValues.ContractEconomy.ComputeValue(nextCashflowMSFOColumn, nextCreditColumn, preparedValues); + + return new ManagerResult { + PostValues = postValues, NextValues = nextValues.GetValues(), PreparedValues = preparedValues, Columns = new diff --git a/EvoCalculator.Core.PostCalculation/v1/Managers/EarlyRedemption.cs b/EvoCalculator.Core.PostCalculation/v1/Managers/EarlyRedemption.cs index 63b26e5..cda4c46 100644 --- a/EvoCalculator.Core.PostCalculation/v1/Managers/EarlyRedemption.cs +++ b/EvoCalculator.Core.PostCalculation/v1/Managers/EarlyRedemption.cs @@ -209,7 +209,7 @@ public static partial class CalculateManager var nextInterestColumn = new InterestColumn(nextCashflowMSFOForNIColumn.Values.Length); nextInterestColumn.ComputeValues(nextNIColumn, nextIRRGrColumn); - nextInterestColumn.PostCheck(nextSumColumn, nextDateColumn, nextCashflowMSFOColumn.Dates); + // nextInterestColumn.PostCheck(nextSumColumn, nextDateColumn, nextCashflowMSFOColumn.Dates); var nextSumCurrentColumn = new SumCurrentColumn(preparedValues.Nmper.Next + 1); nextSumCurrentColumn.ComputeValues(nextSumWithVATColumn); @@ -261,10 +261,14 @@ public static partial class CalculateManager /* * NEXT */ + + var postValues = new PostValues.PostValues(); + postValues.ContractEconomy.ComputeValue(nextCashflowMSFOColumn, nextCreditColumn, preparedValues); return new ManagerResult { + PostValues = postValues, NextValues = nextValues.GetValues(), PreparedValues = preparedValues, Columns = new diff --git a/EvoCalculator.Core.PostCalculation/v1/Managers/PERWithChangingTheTerm.cs b/EvoCalculator.Core.PostCalculation/v1/Managers/PERWithChangingTheTerm.cs index 414ba00..ea41ae1 100644 --- a/EvoCalculator.Core.PostCalculation/v1/Managers/PERWithChangingTheTerm.cs +++ b/EvoCalculator.Core.PostCalculation/v1/Managers/PERWithChangingTheTerm.cs @@ -226,9 +226,13 @@ public static partial class CalculateManager * NEXT */ + var postValues = new PostValues.PostValues(); + postValues.ContractEconomy.ComputeValue(nextCashflowMSFOColumn, nextCreditColumn, preparedValues); + return new ManagerResult { + PostValues = postValues, NextValues = nextValues.GetValues(), PreparedValues = preparedValues, Columns = new diff --git a/EvoCalculator.Core.PostCalculation/v1/Managers/PERWithoutChangingTheTerm.cs b/EvoCalculator.Core.PostCalculation/v1/Managers/PERWithoutChangingTheTerm.cs index 08380f5..af0906c 100644 --- a/EvoCalculator.Core.PostCalculation/v1/Managers/PERWithoutChangingTheTerm.cs +++ b/EvoCalculator.Core.PostCalculation/v1/Managers/PERWithoutChangingTheTerm.cs @@ -191,8 +191,13 @@ public static partial class CalculateManager * NEXT */ + var postValues = new PostValues.PostValues(); + postValues.ContractEconomy.ComputeValue(nextCashflowMSFOColumn, nextCreditColumn, preparedValues); + + return new ManagerResult { + PostValues = postValues, NextValues = nextValues.GetValues(), PreparedValues = preparedValues, Columns = new diff --git a/EvoCalculator.Core.PostCalculation/v1/Managers/PostValues/ContractEconomy.cs b/EvoCalculator.Core.PostCalculation/v1/Managers/PostValues/ContractEconomy.cs new file mode 100644 index 0000000..a60b88e --- /dev/null +++ b/EvoCalculator.Core.PostCalculation/v1/Managers/PostValues/ContractEconomy.cs @@ -0,0 +1,17 @@ +using System.Linq; +using EvoCalculator.Core.Base.Columns; +using EvoCalculator.Core.Base.PostValues; +using EvoCalculator.Core.Models.PostCalculation.Models.Prepared; + +namespace EvoCalculator.Core.PostCalculation.v1.Managers.PostValues; + +public class ContractEconomy : BasePostValue +{ + public void ComputeValue(BaseColumn nextCashflowMSFOColumn, BaseColumn nextCreditColumn, + PreparedValues preparedValues) + { + Value = nextCashflowMSFOColumn.Values.Sum() + + nextCreditColumn.GetValue(0) + - preparedValues.BonusDirector; + } +} \ No newline at end of file diff --git a/EvoCalculator.Core.PostCalculation/v1/Managers/PostValues/PostValues.cs b/EvoCalculator.Core.PostCalculation/v1/Managers/PostValues/PostValues.cs new file mode 100644 index 0000000..3e8e90f --- /dev/null +++ b/EvoCalculator.Core.PostCalculation/v1/Managers/PostValues/PostValues.cs @@ -0,0 +1,19 @@ +namespace EvoCalculator.Core.PostCalculation.v1.Managers.PostValues; + +public class PostValues +{ + public ContractEconomy ContractEconomy; + + public PostValues() + { + ContractEconomy = new ContractEconomy(); + } + + public virtual object GetValues() + { + return new + { + ContractEconomy = ContractEconomy.Value, + }; + } +} \ No newline at end of file