Exemplo n.º 1
0
        public bool MoveNext()
        {
            RefreshCalculations();
            if (CurrentItem == null)
            {
                return(false);
            }

            if (_currentPageIndex < 0)
            {
                return(false);
            }

            _currentPageIndex++;
            CurrentItem = Items.GetOrDefaultByIndex(_currentPageIndex);
            if (CurrentItem == null)
            {
                var lastInner = InnerEquationList.GetOrDefaultByIndex(_currentPageIndex);
                if (lastInner != null)
                {
                    CurrentItem = lastInner;
                }
            }
            return(true);
        }
Exemplo n.º 2
0
 public void CreateDefaultCurrentItem()
 {
     CurrentItem = new BudgetCalculatorItem
     {
         Equation = this.Equation
     };
     InnerEquationList.Add(CurrentItem);
 }
Exemplo n.º 3
0
        public bool MoveBack()
        {
            RefreshCalculations();
            if (_currentPageIndex <= 0)
            {
                return(false);
            }

            _currentPageIndex--;

            if (_currentPageIndex >= Items.Count)
            {
                return(false);
            }

            CurrentItem = Items[_currentPageIndex];
            return(true);
        }
Exemplo n.º 4
0
        public void AttachEvaluator(BudgetCalculatorItem calculatorItem)
        {
            CashFlow      cashFlow      = null;
            CashFlowGroup cashFlowGroup = null;

            switch (calculatorItem.ValueType)
            {
            case CalculatorValueType.BudgetTotalRevenuesValue:
                calculatorItem.Evaluator = () => Budget.TotalSumOfRevenues;
                break;

            case CalculatorValueType.BudgetIncomesValue:
            case CalculatorValueType.BudgetIncomesValueOfType:
                var income = CachedService.GetAllIncomes().FirstOrDefault(x => x.Id == calculatorItem.ForeignId);
                calculatorItem.Evaluator = () => GetSumOfBudgetIncomes(income);
                break;

            case CalculatorValueType.BudgetSavingsValue:
            case CalculatorValueType.BudgetSavingsValueOfType:
                var saving = CachedService.GetAllSavings().FirstOrDefault(x => x.Id == calculatorItem.ForeignId);
                calculatorItem.Evaluator = () => GetSumOfBudgetSavings(saving);
                break;

            case CalculatorValueType.BudgetExpensesValueOfType:
                cashFlow = CachedService.GetAllCashFlows().FirstOrDefault(x => x.Id == calculatorItem.ForeignId);
                if (cashFlow == null)
                {
                    throw new NullReferenceException(string.Format("Błąd obliczania równania {0}. Brak kategorii.", calculatorItem.Equation.Name));
                }
                calculatorItem.Evaluator = () => GetSumOfBudgetExpenses(cashFlow);
                break;

            case CalculatorValueType.BudgetExpensesWithDescription:
                calculatorItem.Evaluator = () => GetSumOfBudgetExpensesWithDescription(calculatorItem.Text);
                break;

            case CalculatorValueType.CalculatorEquationValue:
                var calculatorEquation = Equations.FirstOrDefault(x => x.Id == calculatorItem.ForeignId);
                if (calculatorEquation == null)
                {
                    throw new NullReferenceException(string.Format("Nie udało się odnaleźć równania powiązanego z równaniem: {0}", calculatorItem.Name));
                }
                calculatorItem.Evaluator = () => Calculate(calculatorEquation);
                break;

            case CalculatorValueType.BudgetPlanValue:
                calculatorItem.Evaluator = () => Budget.TotalBudgetPlanValue;
                break;

            case CalculatorValueType.BudgetPlanValueOfCategory:
                cashFlow = CachedService.GetAllCashFlows().FirstOrDefault(x => x.Id == calculatorItem.ForeignId);
                if (cashFlow == null)
                {
                    throw new NullReferenceException(string.Format("Błąd obliczania równania {0}. Brak kategorii.", calculatorItem.Equation.Name));
                }
                calculatorItem.Evaluator = () => GetSumOfBudgetPlansOfCategory(cashFlow);
                break;

            case CalculatorValueType.BudgetPlanValueOfGroup:
                cashFlowGroup = CachedService.GetAllCashFlowGroups().FirstOrDefault(x => x.Id == calculatorItem.ForeignId);
                if (cashFlowGroup == null)
                {
                    throw new NullReferenceException(string.Format("Błąd obliczania równania {0}. Brak grupy.", calculatorItem.Equation.Name));
                }
                calculatorItem.Evaluator = () => GetSumOfBudgetPlansOfGroup(cashFlowGroup);
                break;
            }
        }