part of SumColumn
This commit is contained in:
parent
b127baeeef
commit
5feb8d42af
@ -38,16 +38,14 @@
|
||||
<e p="EvoCalculator.Core.Calculation" t="IncludeRecursive">
|
||||
<e p="bin" t="ExcludeRecursive" />
|
||||
<e p="Columns" t="Include">
|
||||
<e p="BaseColumnWithXIRR.cs" t="Include" />
|
||||
<e p="DateColumn.cs" t="Include" />
|
||||
<e p="DateTempColumn.cs" t="Include" />
|
||||
<e p="KaskoNmperGrColumn.cs" t="Include" />
|
||||
<e p="PercentPaymentColumn.cs" t="Include" />
|
||||
<e p="SumColumn.cs" t="Include" />
|
||||
</e>
|
||||
<e p="EvoCalculator.Core.Calculation.csproj" t="IncludeRecursive" />
|
||||
<e p="FinanceFormulas" t="Include">
|
||||
<e p="XIRR.cs" t="Include" />
|
||||
<e p="XNPV.cs" t="Include" />
|
||||
</e>
|
||||
<e p="obj" t="ExcludeRecursive">
|
||||
<e p="Debug" t="Include">
|
||||
<e p="netcoreapp3.1" t="Include">
|
||||
@ -68,11 +66,25 @@
|
||||
</e>
|
||||
</e>
|
||||
</e>
|
||||
<e p="EvoCalculator.Core.FinanceFormulas" t="IncludeRecursive">
|
||||
<e p="bin" t="ExcludeRecursive" />
|
||||
<e p="EvoCalculator.Core.FinanceFormulas.csproj" t="IncludeRecursive" />
|
||||
<e p="obj" t="ExcludeRecursive">
|
||||
<e p="Debug" t="Include">
|
||||
<e p="netcoreapp3.1" t="Include">
|
||||
<e p="EvoCalculator.Core.FinanceFormulas.AssemblyInfo.cs" t="Include" />
|
||||
</e>
|
||||
</e>
|
||||
</e>
|
||||
<e p="XIRR.cs" t="Include" />
|
||||
<e p="XNPV.cs" t="Include" />
|
||||
</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="IColumnWithXIRR.cs" t="Include" />
|
||||
<e p="IFinanceFormula.cs" t="Include" />
|
||||
</e>
|
||||
<e p="Models" t="Include">
|
||||
@ -111,6 +123,7 @@
|
||||
<e p="DateTempTests.cs" t="Include" />
|
||||
<e p="KaskoNmperGrTests.cs" t="Include" />
|
||||
<e p="PercentPaymentTests.cs" t="Include" />
|
||||
<e p="SumColumnTest.cs" t="Include" />
|
||||
</e>
|
||||
<e p="FinanceFormulasTests.cs" t="Include" />
|
||||
</e>
|
||||
|
||||
155
.idea/.idea.EvoCalculator.Core/.idea/workspace.xml
generated
155
.idea/.idea.EvoCalculator.Core/.idea/workspace.xml
generated
@ -14,12 +14,19 @@
|
||||
</component>
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="2c3b0650-5589-43d4-b4b7-2979612bb30f" name="Default Changelist" comment="">
|
||||
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/KaskoNmperGrColumn.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Suite/Columns/KaskoNmperGrTests.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/BaseColumnWithXIRR.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/SumColumn.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.FinanceFormulas/EvoCalculator.Core.FinanceFormulas.csproj" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Interfaces/IColumnWithXIRR.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Suite/Columns/SumColumnTest.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/Columns/DateTempColumn.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/DateTempColumn.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Interfaces/IColumn.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Interfaces/IColumn.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/KaskoNmperGrColumn.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/KaskoNmperGrColumn.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/EvoCalculator.Core.Calculation.csproj" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/EvoCalculator.Core.Calculation.csproj" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/FinanceFormulas/XIRR.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.FinanceFormulas/XIRR.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/FinanceFormulas/XNPV.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.FinanceFormulas/XNPV.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.sln" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.sln" afterDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
@ -31,23 +38,15 @@
|
||||
</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="mock://C:/Users/Chika/Projects/EvoCalculator.Core/EvoCalculator.Core.Tests/Calculation/Suite/Columns/DateColumnTests.cs" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock://C:/Users/Chika/Projects/EvoCalculator.Core/EvoCalculator.Core.Calculation/Columns/DateTempColumn.cs" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/EvoCalculator.Core.FinanceFormulas/XIRR.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/EvoCalculator.Core.Constants/Calculation.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="mock://C:/Users/Chika/Projects/EvoCalculator.Core/EvoCalculator.Core.Calculation/Columns/DateColumn.cs" root0="SKIP_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="mock://C:/Users/Chika/Projects/EvoCalculator.Core/EvoCalculator.Core.Models/Calculation/Interfaces/IColumn.cs" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock://C:/Users/Chika/Projects/EvoCalculator.Core/EvoCalculator.Core.Calculation/Columns/PercentPaymentColumn.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="mock://C:/Users/Chika/Projects/EvoCalculator.Core/EvoCalculator.Core.Calculation/Columns/DateColumn.cs" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/AD61CA47-F8B7-4CC6-93A0-BA44CC73B5C7/49/DateTime.cs" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock://C:/Users/Chika/Projects/EvoCalculator.Core/EvoCalculator.Core.Calculation/Columns/DateTempColumn.cs" root0="SKIP_HIGHLIGHTING" />
|
||||
</component>
|
||||
<component name="IdeDocumentHistory">
|
||||
<option name="CHANGED_PATHS">
|
||||
<list>
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/UnitTest1.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Class1.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Class1.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core/Controllers/WeatherForecastController.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core/Startup.cs" />
|
||||
@ -66,7 +65,6 @@
|
||||
<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.Calculation/Columns/ComputableColumn.cs" />
|
||||
@ -82,12 +80,24 @@
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Models/Prepared/PreparedPayments.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Suite/Columns/PercentPaymentTests.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/KaskoNmperGr.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/PercentPaymentColumn.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.Calculation/Columns/DateTempColumn.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Suite/Columns/KaskoNmperGrTests.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/PercentPaymentColumn.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Interfaces/IColumn.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Interfaces/BaseColumnWithXIRR.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/SumColumn.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.FinanceFormulas/Class1.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.FinanceFormulas/XNPV.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.FinanceFormulas/XIRR.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.FinanceFormulas/XNPV.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/KaskoNmperGrColumn.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.FinanceFormulas/XIRR.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Models/BaseColumnWithXIRR.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/BaseColumnWithXIRR.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Suite/Columns/SumColumnTest.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Interfaces/IColumnWithXIRR.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Suite/FinanceFormulasTests.cs" />
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
@ -152,7 +162,9 @@
|
||||
<workItem from="1602504354370" duration="6573000" />
|
||||
<workItem from="1602584653395" duration="12605000" />
|
||||
<workItem from="1602678304213" duration="9304000" />
|
||||
<workItem from="1602754684591" duration="12926000" />
|
||||
<workItem from="1602754684591" duration="13639000" />
|
||||
<workItem from="1602850022326" duration="4617000" />
|
||||
<workItem from="1602854690202" duration="696000" />
|
||||
</task>
|
||||
<task id="LOCAL-00001" summary="rename: flow">
|
||||
<created>1602593830686</created>
|
||||
@ -200,94 +212,94 @@
|
||||
<screen x="0" y="0" width="2560" height="1400" />
|
||||
</state>
|
||||
<state width="897" height="464" key="DebuggerActiveHint/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602767525601" />
|
||||
<state width="2517" height="437" key="GridCell.Tab.0.bottom" timestamp="1602767710354">
|
||||
<state width="2517" height="437" key="GridCell.Tab.0.bottom" timestamp="1602768462757">
|
||||
<screen x="0" y="0" width="2560" height="1400" />
|
||||
</state>
|
||||
<state width="2517" height="437" key="GridCell.Tab.0.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602767710354" />
|
||||
<state width="2517" height="437" key="GridCell.Tab.0.center" timestamp="1602767710354">
|
||||
<state width="2517" height="437" key="GridCell.Tab.0.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602768462757" />
|
||||
<state width="2517" height="437" key="GridCell.Tab.0.center" timestamp="1602768462757">
|
||||
<screen x="0" y="0" width="2560" height="1400" />
|
||||
</state>
|
||||
<state width="2517" height="437" key="GridCell.Tab.0.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602767710354" />
|
||||
<state width="2517" height="437" key="GridCell.Tab.0.left" timestamp="1602767710354">
|
||||
<state width="2517" height="437" key="GridCell.Tab.0.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602768462757" />
|
||||
<state width="2517" height="437" key="GridCell.Tab.0.left" timestamp="1602768462756">
|
||||
<screen x="0" y="0" width="2560" height="1400" />
|
||||
</state>
|
||||
<state width="2517" height="437" key="GridCell.Tab.0.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602767710354" />
|
||||
<state width="2517" height="437" key="GridCell.Tab.0.right" timestamp="1602767710354">
|
||||
<state width="2517" height="437" key="GridCell.Tab.0.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602768462756" />
|
||||
<state width="2517" height="437" key="GridCell.Tab.0.right" timestamp="1602768462757">
|
||||
<screen x="0" y="0" width="2560" height="1400" />
|
||||
</state>
|
||||
<state width="2517" height="437" key="GridCell.Tab.0.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602767710354" />
|
||||
<state width="2517" height="437" key="GridCell.Tab.1.bottom" timestamp="1602767710355">
|
||||
<state width="2517" height="437" key="GridCell.Tab.0.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602768462757" />
|
||||
<state width="2517" height="437" key="GridCell.Tab.1.bottom" timestamp="1602768462757">
|
||||
<screen x="0" y="0" width="2560" height="1400" />
|
||||
</state>
|
||||
<state width="2517" height="437" key="GridCell.Tab.1.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602767710355" />
|
||||
<state width="2517" height="437" key="GridCell.Tab.1.center" timestamp="1602767710354">
|
||||
<state width="2517" height="437" key="GridCell.Tab.1.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602768462757" />
|
||||
<state width="2517" height="437" key="GridCell.Tab.1.center" timestamp="1602768462757">
|
||||
<screen x="0" y="0" width="2560" height="1400" />
|
||||
</state>
|
||||
<state width="2517" height="437" key="GridCell.Tab.1.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602767710354" />
|
||||
<state width="2517" height="437" key="GridCell.Tab.1.left" timestamp="1602767710354">
|
||||
<state width="2517" height="437" key="GridCell.Tab.1.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602768462757" />
|
||||
<state width="2517" height="437" key="GridCell.Tab.1.left" timestamp="1602768462757">
|
||||
<screen x="0" y="0" width="2560" height="1400" />
|
||||
</state>
|
||||
<state width="2517" height="437" key="GridCell.Tab.1.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602767710354" />
|
||||
<state width="2517" height="437" key="GridCell.Tab.1.right" timestamp="1602767710354">
|
||||
<state width="2517" height="437" key="GridCell.Tab.1.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602768462757" />
|
||||
<state width="2517" height="437" key="GridCell.Tab.1.right" timestamp="1602768462757">
|
||||
<screen x="0" y="0" width="2560" height="1400" />
|
||||
</state>
|
||||
<state width="2517" height="437" key="GridCell.Tab.1.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602767710354" />
|
||||
<state width="2517" height="437" key="GridCell.Tab.2.bottom" timestamp="1602767710355">
|
||||
<state width="2517" height="437" key="GridCell.Tab.1.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602768462757" />
|
||||
<state width="2517" height="437" key="GridCell.Tab.2.bottom" timestamp="1602768462758">
|
||||
<screen x="0" y="0" width="2560" height="1400" />
|
||||
</state>
|
||||
<state width="2517" height="437" key="GridCell.Tab.2.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602767710355" />
|
||||
<state width="2517" height="437" key="GridCell.Tab.2.center" timestamp="1602767710355">
|
||||
<state width="2517" height="437" key="GridCell.Tab.2.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602768462758" />
|
||||
<state width="2517" height="437" key="GridCell.Tab.2.center" timestamp="1602768462758">
|
||||
<screen x="0" y="0" width="2560" height="1400" />
|
||||
</state>
|
||||
<state width="2517" height="437" key="GridCell.Tab.2.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602767710355" />
|
||||
<state width="2517" height="437" key="GridCell.Tab.2.left" timestamp="1602767710355">
|
||||
<state width="2517" height="437" key="GridCell.Tab.2.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602768462758" />
|
||||
<state width="2517" height="437" key="GridCell.Tab.2.left" timestamp="1602768462757">
|
||||
<screen x="0" y="0" width="2560" height="1400" />
|
||||
</state>
|
||||
<state width="2517" height="437" key="GridCell.Tab.2.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602767710355" />
|
||||
<state width="2517" height="437" key="GridCell.Tab.2.right" timestamp="1602767710355">
|
||||
<state width="2517" height="437" key="GridCell.Tab.2.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602768462757" />
|
||||
<state width="2517" height="437" key="GridCell.Tab.2.right" timestamp="1602768462758">
|
||||
<screen x="0" y="0" width="2560" height="1400" />
|
||||
</state>
|
||||
<state width="2517" height="437" key="GridCell.Tab.2.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602767710355" />
|
||||
<state width="2517" height="437" key="GridCell.Tab.3.bottom" timestamp="1602767710355">
|
||||
<state width="2517" height="437" key="GridCell.Tab.2.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602768462758" />
|
||||
<state width="2517" height="437" key="GridCell.Tab.3.bottom" timestamp="1602768462758">
|
||||
<screen x="0" y="0" width="2560" height="1400" />
|
||||
</state>
|
||||
<state width="2517" height="437" key="GridCell.Tab.3.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602767710355" />
|
||||
<state width="2517" height="437" key="GridCell.Tab.3.center" timestamp="1602767710355">
|
||||
<state width="2517" height="437" key="GridCell.Tab.3.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602768462758" />
|
||||
<state width="2517" height="437" key="GridCell.Tab.3.center" timestamp="1602768462758">
|
||||
<screen x="0" y="0" width="2560" height="1400" />
|
||||
</state>
|
||||
<state width="2517" height="437" key="GridCell.Tab.3.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602767710355" />
|
||||
<state width="2517" height="437" key="GridCell.Tab.3.left" timestamp="1602767710355">
|
||||
<state width="2517" height="437" key="GridCell.Tab.3.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602768462758" />
|
||||
<state width="2517" height="437" key="GridCell.Tab.3.left" timestamp="1602768462758">
|
||||
<screen x="0" y="0" width="2560" height="1400" />
|
||||
</state>
|
||||
<state width="2517" height="437" key="GridCell.Tab.3.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602767710355" />
|
||||
<state width="2517" height="437" key="GridCell.Tab.3.right" timestamp="1602767710355">
|
||||
<state width="2517" height="437" key="GridCell.Tab.3.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602768462758" />
|
||||
<state width="2517" height="437" key="GridCell.Tab.3.right" timestamp="1602768462758">
|
||||
<screen x="0" y="0" width="2560" height="1400" />
|
||||
</state>
|
||||
<state width="2517" height="437" key="GridCell.Tab.3.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602767710355" />
|
||||
<state width="2517" height="437" key="GridCell.Tab.4.bottom" timestamp="1602767710355">
|
||||
<state width="2517" height="437" key="GridCell.Tab.3.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602768462758" />
|
||||
<state width="2517" height="437" key="GridCell.Tab.4.bottom" timestamp="1602768462758">
|
||||
<screen x="0" y="0" width="2560" height="1400" />
|
||||
</state>
|
||||
<state width="2517" height="437" key="GridCell.Tab.4.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602767710355" />
|
||||
<state width="2517" height="437" key="GridCell.Tab.4.center" timestamp="1602767710355">
|
||||
<state width="2517" height="437" key="GridCell.Tab.4.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602768462758" />
|
||||
<state width="2517" height="437" key="GridCell.Tab.4.center" timestamp="1602768462758">
|
||||
<screen x="0" y="0" width="2560" height="1400" />
|
||||
</state>
|
||||
<state width="2517" height="437" key="GridCell.Tab.4.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602767710355" />
|
||||
<state width="2517" height="437" key="GridCell.Tab.4.left" timestamp="1602767710355">
|
||||
<state width="2517" height="437" key="GridCell.Tab.4.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602768462758" />
|
||||
<state width="2517" height="437" key="GridCell.Tab.4.left" timestamp="1602768462758">
|
||||
<screen x="0" y="0" width="2560" height="1400" />
|
||||
</state>
|
||||
<state width="2517" height="437" key="GridCell.Tab.4.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602767710355" />
|
||||
<state width="2517" height="437" key="GridCell.Tab.4.right" timestamp="1602767710355">
|
||||
<state width="2517" height="437" key="GridCell.Tab.4.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602768462758" />
|
||||
<state width="2517" height="437" key="GridCell.Tab.4.right" timestamp="1602768462758">
|
||||
<screen x="0" y="0" width="2560" height="1400" />
|
||||
</state>
|
||||
<state width="2517" height="437" key="GridCell.Tab.4.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602767710355" />
|
||||
<state x="872" y="432" key="Rider.ProjectTemplateDialog.Size" timestamp="1602683469535">
|
||||
<state width="2517" height="437" key="GridCell.Tab.4.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602768462758" />
|
||||
<state x="872" y="432" key="Rider.ProjectTemplateDialog.Size" timestamp="1602854431119">
|
||||
<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="1602683469535" />
|
||||
<state x="1108" y="385" key="RiderGenerateDialog" timestamp="1602761716982">
|
||||
<state x="872" y="432" key="Rider.ProjectTemplateDialog.Size/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602854431119" />
|
||||
<state x="1108" y="385" key="RiderGenerateDialog" timestamp="1602853905402">
|
||||
<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="1602761716982" />
|
||||
<state x="1108" y="385" key="RiderGenerateDialog/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602853905402" />
|
||||
<state x="1078" y="410" key="RollbackChangesDialog" timestamp="1602761804757">
|
||||
<screen x="0" y="0" width="2560" height="1400" />
|
||||
</state>
|
||||
@ -316,29 +328,12 @@
|
||||
<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="1602764852634">
|
||||
<state x="943" y="315" width="672" height="678" key="search.everywhere.popup" timestamp="1602850027763">
|
||||
<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="1602764852634" />
|
||||
<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="1602850027763" />
|
||||
</component>
|
||||
<component name="XDebuggerManager">
|
||||
<breakpoint-manager>
|
||||
<breakpoints>
|
||||
<line-breakpoint enabled="true" type="DotNet Breakpoints">
|
||||
<url>file://$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Suite/Columns/KaskoNmperGrTests.cs</url>
|
||||
<line>254</line>
|
||||
<properties documentPath="C:\Users\Chika\Projects\EvoCalculator.Core\EvoCalculator.Core.Tests\Calculation\Suite\Columns\KaskoNmperGrTests.cs" initialLine="254">
|
||||
<startOffsets>
|
||||
<option value="9276" />
|
||||
</startOffsets>
|
||||
<endOffsets>
|
||||
<option value="9304" />
|
||||
</endOffsets>
|
||||
</properties>
|
||||
<option name="timeStamp" value="17" />
|
||||
</line-breakpoint>
|
||||
</breakpoints>
|
||||
</breakpoint-manager>
|
||||
<pin-to-top-manager>
|
||||
<pinned-members>
|
||||
<PinnedItemInfo parentTag="Frame#EvoCalculator.Core.Tests.Calculation.Suite.Columns.KaskoNmperGrTests.KaskoNmperGrTest2" memberName="preparedValues" />
|
||||
|
||||
37
EvoCalculator.Core.Calculation/Columns/BaseColumnWithXIRR.cs
Normal file
37
EvoCalculator.Core.Calculation/Columns/BaseColumnWithXIRR.cs
Normal file
@ -0,0 +1,37 @@
|
||||
using System;
|
||||
using EvoCalculator.Core.FinanceFormulas;
|
||||
using EvoCalculator.Core.Models.Calculation.Interfaces;
|
||||
|
||||
namespace EvoCalculator.Core.Models.Calculation.Models
|
||||
{
|
||||
public class BaseColumnWithXIRR : IColumnWithXIRR<double>
|
||||
{
|
||||
public double[] Values { get; set; }
|
||||
public double IRR { get; set; }
|
||||
public DateTime[] Dates { get; set; }
|
||||
|
||||
protected Flow[] Flows
|
||||
{
|
||||
get
|
||||
{
|
||||
Flow[] flows = new Flow[Values.Length];
|
||||
for (var i = 0; i < Values.Length; i++)
|
||||
{
|
||||
flows[i] = new Flow()
|
||||
{
|
||||
Date = Dates[i],
|
||||
Value = Values[i]
|
||||
};
|
||||
}
|
||||
|
||||
return flows;
|
||||
}
|
||||
}
|
||||
|
||||
public void ComputeXIRR()
|
||||
{
|
||||
var XIRR = new XIRR(this.Flows);
|
||||
IRR = XIRR.GetResult();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,5 +1,5 @@
|
||||
using System;
|
||||
using EvoCalculator.Core.Calculation.FinanceFormulas;
|
||||
using EvoCalculator.Core.FinanceFormulas;
|
||||
using EvoCalculator.Core.Models.Calculation.Interfaces;
|
||||
using EvoCalculator.Core.Models.Calculation.Models;
|
||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||
|
||||
35
EvoCalculator.Core.Calculation/Columns/SumColumn.cs
Normal file
35
EvoCalculator.Core.Calculation/Columns/SumColumn.cs
Normal file
@ -0,0 +1,35 @@
|
||||
using System;
|
||||
using EvoCalculator.Core.Models.Calculation.Interfaces;
|
||||
using EvoCalculator.Core.Models.Calculation.Models;
|
||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||
|
||||
namespace EvoCalculator.Core.Calculation.Columns
|
||||
{
|
||||
public class SumColumn : BaseColumnWithXIRR
|
||||
{
|
||||
public SumColumn(int count, DateTempColumn dateTempColumn)
|
||||
{
|
||||
base.Values = new double[count];
|
||||
|
||||
base.Dates = new DateTime[dateTempColumn.Values.Length];
|
||||
for (var i = 0; i < dateTempColumn.Values.Length; i++)
|
||||
{
|
||||
base.Dates[i] = dateTempColumn.Values[i];
|
||||
}
|
||||
}
|
||||
|
||||
public void ComputeValues(PreparedValues preparedValues, PercentPaymentColumn percentPaymentColumn)
|
||||
{
|
||||
Values[0] = -preparedValues.BaseCost;
|
||||
Values[1] = preparedValues.FirstPaymentSum;
|
||||
Values[2] = 98647.7277641429;
|
||||
|
||||
for (var i = 3; i < Values.Length - 1; i++)
|
||||
{
|
||||
Values[i] = Values[2] * percentPaymentColumn.Values[i] / 100;
|
||||
}
|
||||
|
||||
Values[^1] = preparedValues.LastPaymentSum;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -5,6 +5,7 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\EvoCalculator.Core.FinanceFormulas\EvoCalculator.Core.FinanceFormulas.csproj" />
|
||||
<ProjectReference Include="..\EvoCalculator.Core.Models\EvoCalculator.Core.Models.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
@ -0,0 +1,12 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netcoreapp3.1</TargetFramework>
|
||||
<RootNamespace>EvoCalculator.Core.FinanceFormulas</RootNamespace>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\EvoCalculator.Core.Models\EvoCalculator.Core.Models.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
@ -2,7 +2,7 @@
|
||||
using EvoCalculator.Core.Models.Calculation.Interfaces;
|
||||
using EvoCalculator.Core.Models.Calculation.Models;
|
||||
|
||||
namespace EvoCalculator.Core.Calculation.FinanceFormulas
|
||||
namespace EvoCalculator.Core.FinanceFormulas
|
||||
{
|
||||
public class XIRR : IFinanceFormula<double>
|
||||
{
|
||||
@ -3,7 +3,7 @@ using System.Linq;
|
||||
using EvoCalculator.Core.Models.Calculation.Interfaces;
|
||||
using EvoCalculator.Core.Models.Calculation.Models;
|
||||
|
||||
namespace EvoCalculator.Core.Calculation.FinanceFormulas
|
||||
namespace EvoCalculator.Core.FinanceFormulas
|
||||
{
|
||||
public class XNPV : IFinanceFormula<double>
|
||||
{
|
||||
@ -0,0 +1,12 @@
|
||||
using System;
|
||||
using EvoCalculator.Core.Models.Calculation.Models;
|
||||
|
||||
namespace EvoCalculator.Core.Models.Calculation.Interfaces
|
||||
{
|
||||
public interface IColumnWithXIRR<T> : IColumn<T>
|
||||
{
|
||||
public double IRR { get; set; }
|
||||
public DateTime[] Dates { get; set; }
|
||||
public void ComputeXIRR();
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,182 @@
|
||||
using System;
|
||||
using EvoCalculator.Core.Calculation.Columns;
|
||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||
using Xunit;
|
||||
|
||||
namespace EvoCalculator.Core.Tests.Calculation.Suite.Columns
|
||||
{
|
||||
public class SumColumnTest
|
||||
{
|
||||
[Fact]
|
||||
public void SumColumnTest1()
|
||||
{
|
||||
var preparedValues =
|
||||
new PreparedValues()
|
||||
{
|
||||
BaseCost = 2842960.70661055,
|
||||
FirstPaymentSum = 636000,
|
||||
Nmper = 30,
|
||||
LastPaymentSum = 25440
|
||||
};
|
||||
|
||||
|
||||
var percentPaymentColumn = new PercentPaymentColumn(preparedValues.Nmper + 1)
|
||||
{
|
||||
Values = new[]
|
||||
{
|
||||
0.00,
|
||||
0.00,
|
||||
100.00,
|
||||
100.00,
|
||||
100.00,
|
||||
100.00,
|
||||
100.00,
|
||||
100.00,
|
||||
100.00,
|
||||
100.00,
|
||||
100.00,
|
||||
100.00,
|
||||
100.00,
|
||||
100.00,
|
||||
100.00,
|
||||
100.00,
|
||||
100.00,
|
||||
100.00,
|
||||
100.00,
|
||||
100.00,
|
||||
100.00,
|
||||
100.00,
|
||||
100.00,
|
||||
100.00,
|
||||
100.00,
|
||||
100.00,
|
||||
100.00,
|
||||
100.00,
|
||||
100.00,
|
||||
100.00,
|
||||
0.00,
|
||||
}
|
||||
};
|
||||
|
||||
var dateTempColumn = new DateTempColumn()
|
||||
{
|
||||
Values = new[]
|
||||
{
|
||||
new DateTime(2018, 10, 31),
|
||||
new DateTime(2018, 10, 31),
|
||||
new DateTime(2018, 11, 30),
|
||||
new DateTime(2018, 12, 31),
|
||||
new DateTime(2019, 1, 31),
|
||||
new DateTime(2019, 2, 28),
|
||||
new DateTime(2019, 3, 31),
|
||||
new DateTime(2019, 4, 30),
|
||||
new DateTime(2019, 5, 31),
|
||||
new DateTime(2019, 6, 30),
|
||||
new DateTime(2019, 7, 31),
|
||||
new DateTime(2019, 8, 31),
|
||||
new DateTime(2019, 9, 30),
|
||||
new DateTime(2019, 10, 31),
|
||||
new DateTime(2019, 11, 30),
|
||||
new DateTime(2019, 12, 31),
|
||||
new DateTime(2020, 1, 31),
|
||||
new DateTime(2020, 2, 29),
|
||||
new DateTime(2020, 3, 31),
|
||||
new DateTime(2020, 4, 30),
|
||||
new DateTime(2020, 5, 31),
|
||||
new DateTime(2020, 6, 30),
|
||||
new DateTime(2020, 7, 31),
|
||||
new DateTime(2020, 8, 31),
|
||||
new DateTime(2020, 9, 30),
|
||||
new DateTime(2020, 10, 31),
|
||||
new DateTime(2020, 11, 30),
|
||||
new DateTime(2020, 12, 31),
|
||||
new DateTime(2021, 1, 31),
|
||||
new DateTime(2021, 2, 28),
|
||||
new DateTime(2021, 3, 31),
|
||||
new DateTime(2021, 4, 30),
|
||||
new DateTime(2021, 5, 31),
|
||||
new DateTime(2021, 6, 30),
|
||||
new DateTime(2021, 7, 31),
|
||||
new DateTime(2021, 8, 31),
|
||||
new DateTime(2021, 9, 30),
|
||||
new DateTime(2021, 10, 31),
|
||||
new DateTime(2021, 11, 30),
|
||||
new DateTime(2021, 12, 31),
|
||||
new DateTime(2022, 1, 31),
|
||||
new DateTime(2022, 2, 28),
|
||||
new DateTime(2022, 3, 31),
|
||||
new DateTime(2022, 4, 30),
|
||||
new DateTime(2022, 5, 31),
|
||||
new DateTime(2022, 6, 30),
|
||||
new DateTime(2022, 7, 31),
|
||||
new DateTime(2022, 8, 31),
|
||||
new DateTime(2022, 9, 30),
|
||||
new DateTime(2022, 10, 31),
|
||||
new DateTime(2022, 11, 30),
|
||||
new DateTime(2022, 12, 31),
|
||||
new DateTime(2023, 1, 31),
|
||||
new DateTime(2023, 2, 28),
|
||||
new DateTime(2023, 3, 31),
|
||||
new DateTime(2023, 4, 30),
|
||||
new DateTime(2023, 5, 31),
|
||||
new DateTime(2023, 6, 30),
|
||||
new DateTime(2023, 7, 31),
|
||||
new DateTime(2023, 8, 31),
|
||||
new DateTime(2023, 9, 30),
|
||||
new DateTime(2023, 10, 31),
|
||||
new DateTime(2023, 11, 30),
|
||||
new DateTime(2023, 12, 31),
|
||||
new DateTime(2024, 1, 31),
|
||||
new DateTime(2024, 2, 29),
|
||||
new DateTime(2024, 3, 31),
|
||||
}
|
||||
};
|
||||
|
||||
var sumColumn = new SumColumn(preparedValues.Nmper + 1, dateTempColumn);
|
||||
sumColumn.ComputeValues(preparedValues, percentPaymentColumn);
|
||||
|
||||
|
||||
var expected = new[]
|
||||
{
|
||||
-2842960.70661055,
|
||||
636000,
|
||||
98647.7277641429,
|
||||
98647.7277641429,
|
||||
98647.7277641429,
|
||||
98647.7277641429,
|
||||
98647.7277641429,
|
||||
98647.7277641429,
|
||||
98647.7277641429,
|
||||
98647.7277641429,
|
||||
98647.7277641429,
|
||||
98647.7277641429,
|
||||
98647.7277641429,
|
||||
98647.7277641429,
|
||||
98647.7277641429,
|
||||
98647.7277641429,
|
||||
98647.7277641429,
|
||||
98647.7277641429,
|
||||
98647.7277641429,
|
||||
98647.7277641429,
|
||||
98647.7277641429,
|
||||
98647.7277641429,
|
||||
98647.7277641429,
|
||||
98647.7277641429,
|
||||
98647.7277641429,
|
||||
98647.7277641429,
|
||||
98647.7277641429,
|
||||
98647.7277641429,
|
||||
98647.7277641429,
|
||||
98647.7277641429,
|
||||
25440,
|
||||
};
|
||||
|
||||
var values = sumColumn.Values;
|
||||
Assert.Equal(expected, values);
|
||||
|
||||
|
||||
sumColumn.ComputeXIRR();
|
||||
Assert.InRange(sumColumn.IRR, 0.220325, 0.220327);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,6 +1,6 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using EvoCalculator.Core.Calculation.FinanceFormulas;
|
||||
using EvoCalculator.Core.FinanceFormulas;
|
||||
using EvoCalculator.Core.Models.Calculation.Models;
|
||||
using Xunit;
|
||||
using Xunit.Abstractions;
|
||||
|
||||
@ -10,6 +10,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EvoCalculator.Core.Models",
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EvoCalculator.Core.Constants", "EvoCalculator.Core.Constants\EvoCalculator.Core.Constants.csproj", "{A2774317-9EC4-425C-B63F-C5255BE2E5E2}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EvoCalculator.Core.FinanceFormulas", "EvoCalculator.Core.FinanceFormulas\EvoCalculator.Core.FinanceFormulas.csproj", "{57FC4E65-3E6B-4C10-8792-58639D068F71}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
@ -36,5 +38,9 @@ Global
|
||||
{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
|
||||
{57FC4E65-3E6B-4C10-8792-58639D068F71}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{57FC4E65-3E6B-4C10-8792-58639D068F71}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{57FC4E65-3E6B-4C10-8792-58639D068F71}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{57FC4E65-3E6B-4C10-8792-58639D068F71}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user