コード例 #1
0
ファイル: SB1Total1.cs プロジェクト: kpboyle1/devtreks.3.1
        //run the analyses for inputs an outputs
        public async Task <bool> RunAnalyses(SB1Stock sb1Stock)
        {
            bool bHasAnalyses = false;

            //add totals to lca stocks (
            bHasAnalyses = await SetAnalyses(sb1Stock);

            return(bHasAnalyses);
        }
コード例 #2
0
ファイル: SB1Total1.cs プロジェクト: kpboyle1/devtreks.3.1
        //run the analyes for everything else
        //descendentstock holds input and output stock totals and calculators
        public bool RunAnalyses(SB1Stock sb1Stock, List <Calculator1> calcs)
        {
            bool bHasAnalyses = false;

            //add totals to sb1stock.Total1
            if (sb1Stock.Total1 == null)
            {
                sb1Stock.Total1 = new SB1Total1(this.CalcParameters);
            }
            //need one property set
            sb1Stock.Total1.SubApplicationType = this.CalcParameters.SubApplicationType.ToString();
            bHasAnalyses = SetAnalyses(sb1Stock, calcs);
            return(bHasAnalyses);
        }
コード例 #3
0
ファイル: SB1Total1.cs プロジェクト: kpboyle1/devtreks.3.1
        private bool SetAnalyses(SB1Stock sb1Stock, List <Calculator1> calcs)
        {
            bool bHasAnalysis = false;
            bool bHasTotals   = false;

            //only the totStocks are used in results
            //calcs holds a collection of calculators
            //so input.calc not used here but used in parent

            foreach (Calculator1 calc in calcs)
            {
                if (calc.GetType().Equals(sb1Stock.GetType()))
                {
                    SB1Stock stock = (SB1Stock)calc;
                    if (stock != null)
                    {
                        if (stock.Total1 != null)
                        {
                            string sNodeName = sb1Stock.CalcParameters.CurrentElementNodeName;
                            //set two properties
                            stock.Total1.SubApplicationType = stock.SubApplicationType;
                            stock.Total1.AnalyzerType       = sb1Stock.CalcParameters.AnalyzerParms.AnalyzerType;
                            //tps start substracting outcomes from op/comps
                            if (sNodeName == BudgetInvestment.BUDGET_TYPES.budgettimeperiod.ToString() ||
                                sNodeName == BudgetInvestment.INVESTMENT_TYPES.investmenttimeperiod.ToString())
                            {
                                //add stock2 (outputs) to stock1 (inputs) and display stock1 net only
                                bHasTotals = AddSubTotalToTotalStock2(sb1Stock.Total1, stock.Multiplier, stock.Total1);
                            }
                            else
                            {
                                //multiplier is found in stock, not sb1Stock, to ensure that correct before-aggregated element multiplier is used
                                bHasTotals = AddSubTotalToTotalStock(sb1Stock.Total1, stock.Multiplier, stock.Total1);
                            }
                            if (bHasTotals)
                            {
                                bHasAnalysis = true;
                            }
                        }
                    }
                }
            }
            return(bHasAnalysis);
        }
コード例 #4
0
ファイル: SB1Total1.cs プロジェクト: kpboyle1/devtreks.3.1
        private async Task <bool> SetAnalyses(SB1Stock sb1Stock)
        {
            bool bHasAnalysis = false;
            bool bHasTotals   = false;

            //only the totStocks are used to store numerical results
            //calcprops and analyzerprops stored in sb1stock
            sb1Stock.Total1 = new SB1Total1(this.CalcParameters);
            //need a couple of properties set
            sb1Stock.Total1.SubApplicationType = this.CalcParameters.SubApplicationType.ToString();
            sb1Stock.Total1.AnalyzerType       = this.CalcParameters.AnalyzerParms.AnalyzerType;
            //these are the sbc and sbb calculations
            //the initial aggregation must have serialized them correctly as sbc or sbb calcors
            //costs
            foreach (SBC1Calculator ind in sb1Stock.SB11Stock.SB1Calcs)
            {
                if (ind.CalculatorType
                    == SB1CalculatorHelper.CALCULATOR_TYPES.sb101.ToString())
                {
                    //204 deprecated running calcs again -calcs don't change
                    //rerun calcs using input.OCAmount or input.CAPAmount and multiplier (input.times)
                    //await ind.RunSB1C1CalculationsAsync(sb1Stock.CalcParameters);
                    //need a couple of properties set
                    sb1Stock.Total1.SB11Stock.SubApplicationType = this.CalcParameters.SubApplicationType.ToString();
                    sb1Stock.Total1.SB11Stock.AnalyzerType       = this.CalcParameters.AnalyzerParms.AnalyzerType;
                    //sum indicators then use multiplier
                    bHasTotals = AddInputToTotalStock(sb1Stock.Total1, sb1Stock.Multiplier, ind);
                    //stock needs some calculator properties (date)
                    BISB1StockAnalyzerAsync.CopyBaseElementProperties(ind.SB1CInput, sb1Stock);
                    //188 added algo props
                    sb1Stock.CopyCalculatorProperties(ind);
                    sb1Stock.CopyData(ind);
                    sb1Stock.Date = ind.SB1CInput.Date;
                    //any total returns true
                    if (bHasTotals)
                    {
                        bHasAnalysis = true;
                    }
                }
            }
            //benefits
            foreach (SBB1Calculator ind in sb1Stock.SB12Stock.SB2Calcs)
            {
                if (ind.CalculatorType
                    == SB1CalculatorHelper.CALCULATOR_TYPES.sb102.ToString())
                {
                    //204 deprecated running calcs again -calcs don't change
                    //rerun calcs using input.OCAmount or input.CAPAmount and multiplier (input.times)
                    //await ind.RunSB1B1CalculationsAsync(sb1Stock.CalcParameters);
                    //need a couple of properties set
                    sb1Stock.Total1.SB12Stock.SubApplicationType = this.CalcParameters.SubApplicationType.ToString();
                    sb1Stock.Total1.SB12Stock.AnalyzerType       = this.CalcParameters.AnalyzerParms.AnalyzerType;
                    //sum indicators then use multipliers
                    bHasTotals = AddOutputToTotalStock(sb1Stock.Total1, sb1Stock.Multiplier, ind);
                    //stock needs some calculator properties (date)
                    BISB1StockAnalyzerAsync.CopyBaseElementProperties(ind.SB1BOutput, sb1Stock);
                    //188 added algo props
                    sb1Stock.CopyCalculatorProperties(ind);
                    sb1Stock.CopyData(ind);
                    sb1Stock.Date = ind.SB1BOutput.Date;
                    if (bHasTotals)
                    {
                        bHasAnalysis = true;
                    }
                }
            }
            return(bHasAnalysis);
        }