preparedValues && first column

This commit is contained in:
Chika 2020-10-14 18:00:19 +03:00
parent 822206a4a1
commit 0d1e419938
13 changed files with 554 additions and 62 deletions

View File

@ -37,6 +37,9 @@
</e>
<e p="EvoCalculator.Core.Calculation" t="IncludeRecursive">
<e p="bin" t="ExcludeRecursive" />
<e p="Columns" t="Include">
<e p="DateColumn.cs" t="Include" />
</e>
<e p="EvoCalculator.Core.Calculation.csproj" t="IncludeRecursive" />
<e p="FinanceFormulas" t="Include">
<e p="XIRR.cs" t="Include" />
@ -50,14 +53,31 @@
</e>
</e>
</e>
<e p="EvoCalculator.Core.Constants" t="IncludeRecursive">
<e p="bin" t="ExcludeRecursive" />
<e p="Calculation.cs" t="Include" />
<e p="EvoCalculator.Core.Constants.csproj" t="IncludeRecursive" />
<e p="obj" t="ExcludeRecursive">
<e p="Debug" t="Include">
<e p="netcoreapp3.1" t="Include">
<e p="EvoCalculator.Core.Constants.AssemblyInfo.cs" t="Include" />
</e>
</e>
</e>
</e>
<e p="EvoCalculator.Core.Models" t="IncludeRecursive">
<e p="bin" t="ExcludeRecursive" />
<e p="Calculation" t="Include">
<e p="Interfaces" t="Include">
<e p="IColumn.cs" t="Include" />
<e p="IFinanceFormula.cs" t="Include" />
</e>
<e p="Models" t="Include">
<e p="Flow.cs" t="Include" />
<e p="Prepared" t="Include">
<e p="PreparedParams.cs" t="Include" />
<e p="PreparedPayments.cs" t="Include" />
</e>
<e p="Request" t="Include" />
<e p="Response" t="Include" />
</e>
@ -83,6 +103,9 @@
<e p="Calculation" t="Include">
<e p="Controllers" t="Include" />
<e p="Suite" t="Include">
<e p="Columns" t="Include">
<e p="DateColumnTests.cs" t="Include" />
</e>
<e p="FinanceFormulasTests.cs" t="Include" />
</e>
</e>

View File

@ -13,13 +13,19 @@
</select>
</component>
<component name="ChangeListManager">
<list default="true" id="2c3b0650-5589-43d4-b4b7-2979612bb30f" name="Default Changelist" comment="">
<list default="true" id="2c3b0650-5589-43d4-b4b7-2979612bb30f" name="Default Changelist" comment="rename: flow">
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Constants/Calculation.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Constants/EvoCalculator.Core.Constants.csproj" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Interfaces/IColumn.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Models/Prepared/PreparedParams.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Models/Prepared/PreparedPayments.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Suite/Columns/DateColumnTests.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/.idea.EvoCalculator.Core/.idea/contentModel.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/.idea.EvoCalculator.Core/.idea/contentModel.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/.idea.EvoCalculator.Core/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/.idea.EvoCalculator.Core/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/FinanceFormulas/XIRR.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/FinanceFormulas/XIRR.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/FinanceFormulas/XNPV.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/FinanceFormulas/XNPV.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Models/FlowValues.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Models/Flow.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Suite/FinanceFormulasTests.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Suite/FinanceFormulasTests.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Models/EvoCalculator.Core.Models.csproj" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Models/EvoCalculator.Core.Models.csproj" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.sln" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.sln" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
@ -30,8 +36,11 @@
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component>
<component name="HighlightingSettingsPerFile">
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/18D5A60D-361A-4AFD-A431-F772FA87FCC3/d9/b0109e6d/TestInvoker`1.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/EvoCalculator.Core.Constants/Calculation.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/9D995D4A-0EBE-4A93-85A6-BE06CB7C70EE/f6/ada9c10c/FactAttribute.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/9152434B-0FAC-463B-87F2-DD9AF798817F/2e/201d3c41/Assert.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/AD61CA47-F8B7-4CC6-93A0-BA44CC73B5C7/49/DateTime.cs" root0="SKIP_HIGHLIGHTING" />
</component>
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
@ -46,15 +55,31 @@
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Interfaces/IWeatherForecast.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Weather/WeatherForecast.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Weather/Interfaces/IWeatherForecast.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core/Controllers/v1/WeatherForecastController.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Controllers/WeatherForecastControllerTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/FinanceFormulas.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/IFinanceFormula.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Interfaces/IFinanceFormula.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Models/FlowValues.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/FinanceFormulas/XIRR.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Models/InitialParams.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Models/InitialPayments.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/FinanceFormulas/XNPV.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/FinanceFormulas/XIRR.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core/Controllers/v1/WeatherForecastController.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Suite/FinanceFormulasTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Models/PreparedParams.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Models/PreparedPayments.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Models/Prepared/PreparedPayments.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/ComputableColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Models/Prepared/PreparedParams.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Constants.cs" />
<option value="$PROJECT_DIR$/Constants/Class1.cs" />
<option value="$PROJECT_DIR$/Constants/Calculation/Constants.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Constants/Calculation/Constants.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Constants/Calculation.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Interfaces/IColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/DateColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Suite/ColumnsTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Suite/Columns/DateColumnTests.cs" />
</list>
</option>
</component>
@ -117,8 +142,17 @@
<option name="presentableId" value="Default" />
<updated>1602504351800</updated>
<workItem from="1602504354370" duration="6573000" />
<workItem from="1602584653395" duration="8574000" />
<workItem from="1602584653395" duration="12605000" />
<workItem from="1602678304213" duration="9045000" />
</task>
<task id="LOCAL-00001" summary="rename: flow">
<created>1602593830686</created>
<option name="number" value="00001" />
<option name="presentableId" value="LOCAL-00001" />
<option name="project" value="LOCAL" />
<updated>1602593830686</updated>
</task>
<option name="localTasksCounter" value="2" />
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">
@ -141,6 +175,8 @@
<component name="VcsManagerConfiguration">
<option name="ADD_EXTERNAL_FILES_SILENTLY" value="true" />
<option name="CLEAR_INITIAL_COMMIT_MESSAGE" value="true" />
<MESSAGE value="rename: flow" />
<option name="LAST_COMMIT_MESSAGE" value="rename: flow" />
</component>
<component name="WindowStateProjectService">
<state x="1077" y="489" key="#Web_Browsers" timestamp="1602508282238">
@ -151,94 +187,98 @@
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state x="734" y="355" key="#com.intellij.execution.impl.EditConfigurationsDialog/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602508288549" />
<state width="411" height="464" key="DebuggerActiveHint" timestamp="1602590961523">
<state width="454" height="464" key="DebuggerActiveHint" timestamp="1602686251797">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="411" height="464" key="DebuggerActiveHint/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602590961523" />
<state width="2517" height="368" key="GridCell.Tab.0.bottom" timestamp="1602592375552">
<state width="454" height="464" key="DebuggerActiveHint/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602686251797" />
<state width="2517" height="292" key="GridCell.Tab.0.bottom" timestamp="1602687293781">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="368" key="GridCell.Tab.0.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602592375552" />
<state width="2517" height="368" key="GridCell.Tab.0.center" timestamp="1602592375552">
<state width="2517" height="292" key="GridCell.Tab.0.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602687293781" />
<state width="2517" height="292" key="GridCell.Tab.0.center" timestamp="1602687293781">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="368" key="GridCell.Tab.0.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602592375552" />
<state width="2517" height="368" key="GridCell.Tab.0.left" timestamp="1602592375551">
<state width="2517" height="292" key="GridCell.Tab.0.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602687293781" />
<state width="2517" height="292" key="GridCell.Tab.0.left" timestamp="1602687293781">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="368" key="GridCell.Tab.0.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602592375551" />
<state width="2517" height="368" key="GridCell.Tab.0.right" timestamp="1602592375552">
<state width="2517" height="292" key="GridCell.Tab.0.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602687293781" />
<state width="2517" height="292" key="GridCell.Tab.0.right" timestamp="1602687293781">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="368" key="GridCell.Tab.0.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602592375552" />
<state width="2517" height="368" key="GridCell.Tab.1.bottom" timestamp="1602592375553">
<state width="2517" height="292" key="GridCell.Tab.0.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602687293781" />
<state width="2517" height="292" key="GridCell.Tab.1.bottom" timestamp="1602687293781">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="368" key="GridCell.Tab.1.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602592375553" />
<state width="2517" height="368" key="GridCell.Tab.1.center" timestamp="1602592375553">
<state width="2517" height="292" key="GridCell.Tab.1.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602687293781" />
<state width="2517" height="292" key="GridCell.Tab.1.center" timestamp="1602687293781">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="368" key="GridCell.Tab.1.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602592375553" />
<state width="2517" height="368" key="GridCell.Tab.1.left" timestamp="1602592375552">
<state width="2517" height="292" key="GridCell.Tab.1.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602687293781" />
<state width="2517" height="292" key="GridCell.Tab.1.left" timestamp="1602687293781">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="368" key="GridCell.Tab.1.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602592375552" />
<state width="2517" height="368" key="GridCell.Tab.1.right" timestamp="1602592375553">
<state width="2517" height="292" key="GridCell.Tab.1.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602687293781" />
<state width="2517" height="292" key="GridCell.Tab.1.right" timestamp="1602687293781">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="368" key="GridCell.Tab.1.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602592375553" />
<state width="2517" height="368" key="GridCell.Tab.2.bottom" timestamp="1602592375554">
<state width="2517" height="292" key="GridCell.Tab.1.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602687293781" />
<state width="2517" height="292" key="GridCell.Tab.2.bottom" timestamp="1602687293782">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="368" key="GridCell.Tab.2.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602592375554" />
<state width="2517" height="368" key="GridCell.Tab.2.center" timestamp="1602592375553">
<state width="2517" height="292" key="GridCell.Tab.2.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602687293782" />
<state width="2517" height="292" key="GridCell.Tab.2.center" timestamp="1602687293781">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="368" key="GridCell.Tab.2.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602592375553" />
<state width="2517" height="368" key="GridCell.Tab.2.left" timestamp="1602592375553">
<state width="2517" height="292" key="GridCell.Tab.2.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602687293781" />
<state width="2517" height="292" key="GridCell.Tab.2.left" timestamp="1602687293781">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="368" key="GridCell.Tab.2.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602592375553" />
<state width="2517" height="368" key="GridCell.Tab.2.right" timestamp="1602592375554">
<state width="2517" height="292" key="GridCell.Tab.2.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602687293781" />
<state width="2517" height="292" key="GridCell.Tab.2.right" timestamp="1602687293782">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="368" key="GridCell.Tab.2.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602592375554" />
<state width="2517" height="368" key="GridCell.Tab.3.bottom" timestamp="1602592375555">
<state width="2517" height="292" key="GridCell.Tab.2.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602687293782" />
<state width="2517" height="292" key="GridCell.Tab.3.bottom" timestamp="1602687293782">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="368" key="GridCell.Tab.3.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602592375555" />
<state width="2517" height="368" key="GridCell.Tab.3.center" timestamp="1602592375554">
<state width="2517" height="292" key="GridCell.Tab.3.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602687293782" />
<state width="2517" height="292" key="GridCell.Tab.3.center" timestamp="1602687293782">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="368" key="GridCell.Tab.3.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602592375554" />
<state width="2517" height="368" key="GridCell.Tab.3.left" timestamp="1602592375554">
<state width="2517" height="292" key="GridCell.Tab.3.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602687293782" />
<state width="2517" height="292" key="GridCell.Tab.3.left" timestamp="1602687293782">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="368" key="GridCell.Tab.3.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602592375554" />
<state width="2517" height="368" key="GridCell.Tab.3.right" timestamp="1602592375555">
<state width="2517" height="292" key="GridCell.Tab.3.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602687293782" />
<state width="2517" height="292" key="GridCell.Tab.3.right" timestamp="1602687293782">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="368" key="GridCell.Tab.3.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602592375555" />
<state width="2517" height="368" key="GridCell.Tab.4.bottom" timestamp="1602592375557">
<state width="2517" height="292" key="GridCell.Tab.3.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602687293782" />
<state width="2517" height="292" key="GridCell.Tab.4.bottom" timestamp="1602687293783">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="368" key="GridCell.Tab.4.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602592375557" />
<state width="2517" height="368" key="GridCell.Tab.4.center" timestamp="1602592375555">
<state width="2517" height="292" key="GridCell.Tab.4.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602687293783" />
<state width="2517" height="292" key="GridCell.Tab.4.center" timestamp="1602687293783">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="368" key="GridCell.Tab.4.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602592375555" />
<state width="2517" height="368" key="GridCell.Tab.4.left" timestamp="1602592375555">
<state width="2517" height="292" key="GridCell.Tab.4.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602687293783" />
<state width="2517" height="292" key="GridCell.Tab.4.left" timestamp="1602687293782">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="368" key="GridCell.Tab.4.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602592375555" />
<state width="2517" height="368" key="GridCell.Tab.4.right" timestamp="1602592375555">
<state width="2517" height="292" key="GridCell.Tab.4.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602687293782" />
<state width="2517" height="292" key="GridCell.Tab.4.right" timestamp="1602687293783">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="368" key="GridCell.Tab.4.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602592375555" />
<state x="872" y="432" key="Rider.ProjectTemplateDialog.Size" timestamp="1602504924550">
<state width="2517" height="292" key="GridCell.Tab.4.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602687293783" />
<state x="872" y="432" key="Rider.ProjectTemplateDialog.Size" timestamp="1602683469535">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state x="872" y="432" key="Rider.ProjectTemplateDialog.Size/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602504924550" />
<state x="872" y="432" key="Rider.ProjectTemplateDialog.Size/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602683469535" />
<state x="1108" y="385" key="RiderGenerateDialog" timestamp="1602681877222">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state x="1108" y="385" key="RiderGenerateDialog/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602681877222" />
<state x="1078" y="410" key="RollbackChangesDialog" timestamp="1602585122733">
<screen x="0" y="0" width="2560" height="1400" />
</state>
@ -247,25 +287,25 @@
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state x="781" y="345" key="SettingsEditor/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602593091446" />
<state width="498" height="446" key="SwitcherDM" timestamp="1602586590437">
<state width="498" height="446" key="SwitcherDM" timestamp="1602684835910">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="498" height="446" key="SwitcherDM/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602586590437" />
<state x="92" y="92" width="2376" height="1216" key="VCS.FileHistoryDialog" timestamp="1602585129305">
<state width="498" height="446" key="SwitcherDM/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602684835910" />
<state x="92" y="92" width="2376" height="1216" key="VCS.FileHistoryDialog" timestamp="1602678875251">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state x="92" y="92" width="2376" height="1216" key="VCS.FileHistoryDialog/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602585129305" />
<state x="872" y="433" key="Vcs.Push.Dialog.v2" timestamp="1602592995737">
<state x="92" y="92" width="2376" height="1216" key="VCS.FileHistoryDialog/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602678875251" />
<state x="872" y="433" key="Vcs.Push.Dialog.v2" timestamp="1602593833581">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state x="872" y="433" key="Vcs.Push.Dialog.v2/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602592995737" />
<state x="872" y="433" key="Vcs.Push.Dialog.v2/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602593833581" />
<state x="930" y="299" width="700" height="801" key="find.popup" timestamp="1602593714122">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state x="930" y="299" width="700" height="801" key="find.popup/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602593714122" />
<state x="943" y="315" width="672" height="678" key="search.everywhere.popup" timestamp="1602590571064">
<state x="943" y="315" width="672" height="678" key="search.everywhere.popup" timestamp="1602684080977">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state x="943" y="315" width="672" height="678" key="search.everywhere.popup/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602590571064" />
<state x="943" y="315" width="672" height="678" key="search.everywhere.popup/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602684080977" />
</component>
</project>

View File

@ -0,0 +1,41 @@
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);
}
}
}
}

View File

@ -6,8 +6,8 @@ namespace EvoCalculator.Core.Calculation.FinanceFormulas
{
public class XIRR : IFinanceFormula<double>
{
private Flow[] _flows;
private double _guess = 0.1;
private readonly Flow[] _flows;
private readonly double _guess = 0.1;
public XIRR(Flow[] flows)
{

View File

@ -7,8 +7,8 @@ namespace EvoCalculator.Core.Calculation.FinanceFormulas
{
public class XNPV : IFinanceFormula<double>
{
private Flow[] _flows;
private double _rate;
private readonly Flow[] _flows;
private readonly double _rate;
public XNPV(Flow[] flows, double rate)
{

View File

@ -0,0 +1,10 @@
namespace EvoCalculator.Core.Constants
{
public class Calculation
{
// TODO: create constants service
public int DeliveryDays = 210;
public double IncomeTaxValue = 0.2;
public double VatValue = 0.2;
}
}

View File

@ -0,0 +1,8 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<RootNamespace>Constants</RootNamespace>
</PropertyGroup>
</Project>

View File

@ -0,0 +1,14 @@
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Models.Calculation.Interfaces
{
public interface IColumn<T>
{
public T[] Values { get; set; }
public void ComputeValues(PreparedValues preparedValues, PreparedPayments preparedPayments,
Constants.Calculation constants,
params IColumn<T>[] columns);
}
}

View File

@ -0,0 +1,93 @@
using System;
namespace EvoCalculator.Core.Models.Calculation.Models.Prepared
{
public class PreparedValues
{
public DateTime CalcDate { get; set; }
public int CalcType { get; set; }
public double IrrExpected { get; set; }
public double NpvniExpected { get; set; }
public double TotalExpected { get; set; }
public double Leasing0K { get; set; }
public double LoanRate { get; set; }
public int BalanceHolder { get; set; }
public DateTime DogDate { get; set; }
public DateTime? PaymentDateNew { get; set; }
public int DeliveryTime { get; set; }
public string Cityc { get; set; }
public int Nmper { get; set; }
public double FirstPayment { get; set; }
public double FirstPaymentSum { get; set; }
public double FirstPaymentAbs { get; set; }
public double FirstPaymentNdsAbs { get; set; }
public double FirstPaymentWithNdsAbs { get; set; }
public double LastPayment { get; set; }
public double LastPaymentSum { get; set; }
public int ScheduleOfPayments { get; set; }
public double ComissionRub { get; set; }
public double PlPrice { get; set; }
public double Discount { get; set; }
public double AcceptSum { get; set; }
public string PlTypeId { get; set; }
public string BrandId { get; set; }
public string ModelId { get; set; }
public string ConfigurationId { get; set; }
public int PlYear { get; set; }
public double CarCapacity { get; set; }
public double MotorVolume { get; set; }
public int PlEngineType { get; set; }
public double CarCarrying { get; set; }
public int CarSeats { get; set; }
public double Bonus { get; set; }
public double BonusFix { get; set; }
public double MarketRate { get; set; }
public double DistrictRate { get; set; }
public double SalaryRate { get; set; }
public double BonusRatPr { get; set; }
public double BonusNsPr { get; set; }
public double BonusNsibPr { get; set; }
public double Rats { get; set; }
public double BaseRatCost { get; set; }
public double RetroBonus { get; set; }
public double Registration { get; set; }
public double BaseRegistration { get; set; }
public double TransTax { get; set; }
public bool TransIncludeGr { get; set; }
public double TrackerCost { get; set; }
public double InsuranceKasko { get; set; }
public int NmperInsurance { get; set; }
public double InsuranceOsago { get; set; }
public double Insurance { get; set; }
public double InsuranceKaskoNmper { get; set; }
public double InsuranceContract { get; set; }
public double InsuranceBonus { get; set; }
public double NsibBruttoPr { get; set; }
public double NsibNettoPr { get; set; }
public double NsibBase { get; set; }
public double Repayment { get; set; }
public double TransportTaxGrYear { get; set; }
public double TransportTaxGr { get; set; }
public double NsibBrutto { get; set; }
public double NsibNetto { get; set; }
public double NmperDeprecation { get; set; }
public double DeprecationTime { get; set; }
public double RatBonus { get; set; }
public double NsBonus { get; set; }
public double NsibBonus { get; set; }
public double NiAtInception { get; set; }
public double AgentsSum { get; set; }
public double DoubleAgentsSum { get; set; }
public double DeliverySum { get; set; }
public double BrokerSum { get; set; }
public double BrokerOfDeliverySum { get; set; }
public double FinancialDeptOfDeliverySum { get; set; }
public double ImporterSum { get; set; }
public double CalculationCost { get; set; }
public double PriceUpTotal { get; set; }
public double BaseCost { get; set; }
public double AcquisitionExpenses { get; set; }
public double BonusBase { get; set; }
public double NpvBase { get; set; }
}
}

View File

@ -0,0 +1,18 @@
namespace EvoCalculator.Core.Models.Calculation.Models.Prepared
{
public abstract class PaymentRow
{
public int NumberPayment { get; set; }
public double PercentPayment { get; set; }
public double SumPayment { get; set; }
public double GpsBasePayment { get; set; }
public double GpsCostPayment { get; set; }
public double TlmBasePayment { get; set; }
public double TlmCostPayment { get; set; }
}
public class PreparedPayments
{
public PaymentRow[] Rows { get; set; }
}
}

View File

@ -9,4 +9,8 @@
<Folder Include="Calculation\Models\Response" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\EvoCalculator.Core.Constants\EvoCalculator.Core.Constants.csproj" />
</ItemGroup>
</Project>

View File

@ -0,0 +1,235 @@
using System;
using EvoCalculator.Core.Calculation.Columns;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
using Xunit;
using Xunit.Abstractions;
namespace EvoCalculator.Core.Tests.Calculation.Suite.Columns
{
public class DateColumnTests
{
private readonly ITestOutputHelper output;
public DateColumnTests(ITestOutputHelper output)
{
this.output = output;
}
[Fact]
public void DateColumnTest1()
{
var preparedValues =
new PreparedValues()
{
DogDate = new DateTime(2018, 10, 28),
DeliveryTime = 100000000,
PaymentDateNew = null,
Nmper = 30
};
var dateColumn = new DateColumn(preparedValues.Nmper + 1);
dateColumn.ComputeValues(preparedValues, null, new Constants.Calculation(), null);
var expected = new DateTime[]
{
new DateTime(2018, 10, 28),
new DateTime(2018, 10, 28),
new DateTime(2018, 11, 28),
new DateTime(2018, 12, 28),
new DateTime(2019, 01, 28),
new DateTime(2019, 02, 28),
new DateTime(2019, 03, 28),
new DateTime(2019, 04, 28),
new DateTime(2019, 05, 28),
new DateTime(2019, 06, 28),
new DateTime(2019, 07, 28),
new DateTime(2019, 08, 28),
new DateTime(2019, 09, 28),
new DateTime(2019, 10, 28),
new DateTime(2019, 11, 28),
new DateTime(2019, 12, 28),
new DateTime(2020, 01, 28),
new DateTime(2020, 02, 28),
new DateTime(2020, 03, 28),
new DateTime(2020, 04, 28),
new DateTime(2020, 05, 28),
new DateTime(2020, 06, 28),
new DateTime(2020, 07, 28),
new DateTime(2020, 08, 28),
new DateTime(2020, 09, 28),
new DateTime(2020, 10, 28),
new DateTime(2020, 11, 28),
new DateTime(2020, 12, 28),
new DateTime(2021, 01, 28),
new DateTime(2021, 02, 28),
new DateTime(2021, 03, 28),
};
var res = dateColumn.Values;
Assert.Equal(expected, res);
}
[Fact]
public void DateColumnTest2()
{
var preparedValues =
new PreparedValues()
{
DogDate = new DateTime(2018, 10, 28),
DeliveryTime = 100000000,
PaymentDateNew = new DateTime(2018, 11, 13),
Nmper = 30
};
var dateColumn = new DateColumn(preparedValues.Nmper + 1);
dateColumn.ComputeValues(preparedValues, null, new Constants.Calculation(), null);
var expected = new DateTime[]
{
new DateTime(2018, 10, 28),
new DateTime(2018, 10, 28),
new DateTime(2018, 11, 13),
new DateTime(2018, 12, 13),
new DateTime(2019, 01, 13),
new DateTime(2019, 02, 13),
new DateTime(2019, 03, 13),
new DateTime(2019, 04, 13),
new DateTime(2019, 05, 13),
new DateTime(2019, 06, 13),
new DateTime(2019, 07, 13),
new DateTime(2019, 08, 13),
new DateTime(2019, 09, 13),
new DateTime(2019, 10, 13),
new DateTime(2019, 11, 13),
new DateTime(2019, 12, 13),
new DateTime(2020, 01, 13),
new DateTime(2020, 02, 13),
new DateTime(2020, 03, 13),
new DateTime(2020, 04, 13),
new DateTime(2020, 05, 13),
new DateTime(2020, 06, 13),
new DateTime(2020, 07, 13),
new DateTime(2020, 08, 13),
new DateTime(2020, 09, 13),
new DateTime(2020, 10, 13),
new DateTime(2020, 11, 13),
new DateTime(2020, 12, 13),
new DateTime(2021, 01, 13),
new DateTime(2021, 02, 13),
new DateTime(2021, 03, 13),
};
var res = dateColumn.Values;
Assert.Equal(expected, res);
}
[Fact]
public void DateColumnTest3()
{
var preparedValues =
new PreparedValues()
{
DogDate = new DateTime(2018, 10, 28),
DeliveryTime = 100000001,
PaymentDateNew = null,
Nmper = 30
};
var dateColumn = new DateColumn(preparedValues.Nmper + 1);
dateColumn.ComputeValues(preparedValues, null, new Constants.Calculation(), null);
var expected = new DateTime[]
{
new DateTime(2018, 10, 28),
new DateTime(2018, 10, 28),
new DateTime(2019, 5, 26),
new DateTime(2019, 6, 26),
new DateTime(2019, 7, 26),
new DateTime(2019, 8, 26),
new DateTime(2019, 9, 26),
new DateTime(2019, 10, 26),
new DateTime(2019, 11, 26),
new DateTime(2019, 12, 26),
new DateTime(2020, 1, 26),
new DateTime(2020, 2, 26),
new DateTime(2020, 3, 26),
new DateTime(2020, 4, 26),
new DateTime(2020, 5, 26),
new DateTime(2020, 6, 26),
new DateTime(2020, 7, 26),
new DateTime(2020, 8, 26),
new DateTime(2020, 9, 26),
new DateTime(2020, 10, 26),
new DateTime(2020, 11, 26),
new DateTime(2020, 12, 26),
new DateTime(2021, 1, 26),
new DateTime(2021, 2, 26),
new DateTime(2021, 3, 26),
new DateTime(2021, 4, 26),
new DateTime(2021, 5, 26),
new DateTime(2021, 6, 26),
new DateTime(2021, 7, 26),
new DateTime(2021, 8, 26),
new DateTime(2021, 9, 26),
};
var res = dateColumn.Values;
Assert.Equal(expected, res);
}
[Fact]
public void DateColumnTest4()
{
var preparedValues =
new PreparedValues()
{
DogDate = new DateTime(2018, 10, 31),
DeliveryTime = 100000000,
PaymentDateNew = null,
Nmper = 30
};
var dateColumn = new DateColumn(preparedValues.Nmper + 1);
dateColumn.ComputeValues(preparedValues, null, new Constants.Calculation(), null);
var expected = new DateTime[]
{
new DateTime(2018, 10, 31),
new DateTime(2018, 10, 31),
new DateTime(2018, 11, 30),
new DateTime(2018, 12, 31),
new DateTime(2019, 01, 31),
new DateTime(2019, 02, 28),
new DateTime(2019, 03, 31),
new DateTime(2019, 04, 30),
new DateTime(2019, 05, 31),
new DateTime(2019, 06, 30),
new DateTime(2019, 07, 31),
new DateTime(2019, 08, 31),
new DateTime(2019, 09, 30),
new DateTime(2019, 10, 31),
new DateTime(2019, 11, 30),
new DateTime(2019, 12, 31),
new DateTime(2020, 01, 31),
new DateTime(2020, 02, 29),
new DateTime(2020, 03, 31),
new DateTime(2020, 04, 30),
new DateTime(2020, 05, 31),
new DateTime(2020, 06, 30),
new DateTime(2020, 07, 31),
new DateTime(2020, 08, 31),
new DateTime(2020, 09, 30),
new DateTime(2020, 10, 31),
new DateTime(2020, 11, 30),
new DateTime(2020, 12, 31),
new DateTime(2021, 01, 31),
new DateTime(2021, 02, 28),
new DateTime(2021, 03, 28),
};
var res = dateColumn.Values;
Assert.Equal(expected, res);
}
}
}

View File

@ -8,6 +8,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EvoCalculator.Core.Tests",
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EvoCalculator.Core.Models", "EvoCalculator.Core.Models\EvoCalculator.Core.Models.csproj", "{768ED2B0-5BCE-484F-873B-ADF4DC22687F}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EvoCalculator.Core.Constants", "EvoCalculator.Core.Constants\EvoCalculator.Core.Constants.csproj", "{A2774317-9EC4-425C-B63F-C5255BE2E5E2}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -30,5 +32,9 @@ Global
{768ED2B0-5BCE-484F-873B-ADF4DC22687F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{768ED2B0-5BCE-484F-873B-ADF4DC22687F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{768ED2B0-5BCE-484F-873B-ADF4DC22687F}.Release|Any CPU.Build.0 = Release|Any CPU
{A2774317-9EC4-425C-B63F-C5255BE2E5E2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A2774317-9EC4-425C-B63F-C5255BE2E5E2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A2774317-9EC4-425C-B63F-C5255BE2E5E2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A2774317-9EC4-425C-B63F-C5255BE2E5E2}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal