private void LoadIncomes() { var incomeValues = Database.Query <IncomeValue, Income, Budget>(PetaPoco.Sql.Builder .Select("*") .From("IncomeValue") .InnerJoin("Income") .On("Income.Id = IncomeValue.IncomeId") .InnerJoin("Budget") .On("Budget.Id = IncomeValue.BudgetId") .Where("IncomeValue.BudgetId = @0", Budget.Id)).ToList(); BudgetIncomeValues.IsNotifying = false; BudgetIncomeValues.Clear(); incomeValues.ForEach(x => BudgetIncomeValues.Add(x)); AvailableIncomes.Clear(); AvailableIncomes.AddRange(CachedService.GetAllIncomes()); IncomeValueDate = DateTime.Now; IncomeValueValue = 0; SelectedAvailableIncome = null; BudgetIncomeValues.IsNotifying = true; BudgetIncomeValues.Refresh(); }
private void LoadIncomesData() { Incomes.Clear(); var incomesList = CachedService.GetAllIncomes(); incomesList.ForEach(x => { Incomes.Add(x); x.PropertyChanged += (s, e) => { Save(x); CachedService.Clear(CachedServiceKeys.AllIncomes); }; }); }
private void ShowWizard() { Shell.ShowDialog <BudgetEquationWizardShellViewModel, BudgetEquationWizardVM>( new { ValueTypes = ValueTypes.ToList(), OperatorTypes = OperatorTypes.ToList(), Incomes = CachedService.GetAllIncomes().ToList(), Savings = CachedService.GetAllSavings().ToList(), CashFlows = CachedService.GetAllCashFlows().ToList(), CashFlowGroups = CachedService.GetAllCashFlowGroups().ToList(), Equations = Equations.ToList(), Equation = EquationToEdit, BudgetCalculatorEvaluator = BudgetCalculatorEvaluator, }, null, null); }
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; } }