public BudgetMonth(BudgetMonth budgetMonth) { Month = budgetMonth.Month; Year = budgetMonth.Year; BudgetReal = new BudgetReal(budgetMonth.BudgetReal); BudgetPlanned = new BudgetPlanned(budgetMonth.BudgetPlanned); }
public async Task LoadAsync() { try { LogsManager.Instance.WriteLine("Load data"); var data = await _fileManager.Load(); if (data != null) { if (data.BudgetPlanned != null) { budgetPlanned = data.BudgetPlanned; } if (data.Months != null) { _months = data.Months; foreach (var month in _months) { month.Setup(); } } } IsDataLoaded = true; //onBudgetLoaded?.Invoke(); BudgetDataChanged?.Invoke(false); } catch (Exception exc) { LogsManager.Instance.WriteLine(exc.Message); LogsManager.Instance.WriteLine(exc.StackTrace); } }
public void UpdateBudgetCategories(List <BudgetCategoryForEdit> categoriesUpdated) { foreach (var category in categoriesUpdated) { var categoryReal = BudgetReal.GetBudgetCategory(category.Id); var categoryPlan = BudgetPlanned.GetBudgetCategory(category.Id); foreach (var subcat in category) { var subcatPlan = categoryPlan.GetSubcat(subcat.Id); var subcatReal = categoryReal.GetSubcat(subcat.Id); if (subcatPlan != null && subcatReal != null) { subcatPlan.Name = subcat.Name; subcatReal.Name = subcat.Name; } else { //add new categoryReal.AddNewSubcat(subcat); categoryPlan.AddNewSubcat(subcat); } } //check if any subcat was removed if (category.Count < categoryReal.subcats.Count) { var toRemove = new List <BaseBudgetSubcat>(); foreach (var existingSubcat in categoryReal.subcats) { if (category.FirstOrDefault(subcat => subcat.Id == existingSubcat.Id) == null) { toRemove.Add(existingSubcat); } } if (toRemove.Count > 0) { foreach (var subcatRemove in toRemove) { categoryReal.subcats.Remove(subcatRemove); categoryPlan.subcats.RemoveAt(categoryPlan.subcats.FindIndex(item => item.Id == subcatRemove.Id)); } } } } }
private void UpdateData(object sender, BudgetData data) { try { if (data == null) { LogsManager.Instance.WriteLine("Cloud UpdateData == null"); Task.Run(() => LoadAsync()); } else { lock (_updateLock) { _months.Clear(); if (data.Months != null) { _months = data.Months; foreach (var month in _months) { month.Setup(); } } if (data.BudgetPlanned != null) { budgetPlanned = data.BudgetPlanned; } } IsDataLoaded = true; BudgetDataChanged?.Invoke(true); Task.Factory.StartNew(async() => await Save(false)); } } catch (Exception exc) { LogsManager.Instance.WriteLine("SynchronizeData exception: " + exc.Message); LogsManager.Instance.WriteLine(exc.StackTrace); } }
private MainBudget() { _months = new List <BudgetMonth>(); budgetPlanned = new BudgetPlanned(); IsDataLoaded = false; }
public async Task UpdateMainPlannedBudget() { budgetPlanned = GetCurrentMonthData().BudgetPlanned; await Save().ConfigureAwait(false); }
private void SetupCategories(List <BudgetCategoryTemplate> categoriesDesc) { BudgetPlanned.Setup(categoriesDesc); BudgetReal.Setup(categoriesDesc); }
private BudgetMonth() { BudgetReal = new BudgetReal(); BudgetPlanned = new BudgetPlanned(); }
public void Setup() { BudgetPlanned.Prepare(); BudgetReal.Prepare(); }
public void UpdatePlannedBudget(BudgetPlanned newBudgetPlanned) { BudgetPlanned = new BudgetPlanned(newBudgetPlanned); }
public double GetTotalIncomePlanned() { return(BudgetPlanned.GetTotalIncome()); }
public double GetTotalExpensesPlanned() { return(BudgetPlanned.GetTotalExpenses()); }