Exemplo n.º 1
0
 public BudgetMonth(BudgetMonth budgetMonth)
 {
     Month         = budgetMonth.Month;
     Year          = budgetMonth.Year;
     BudgetReal    = new BudgetReal(budgetMonth.BudgetReal);
     BudgetPlanned = new BudgetPlanned(budgetMonth.BudgetPlanned);
 }
Exemplo n.º 2
0
        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);
            }
        }
Exemplo n.º 3
0
        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));
                        }
                    }
                }
            }
        }
Exemplo n.º 4
0
        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);
            }
        }
Exemplo n.º 5
0
 private MainBudget()
 {
     _months       = new List <BudgetMonth>();
     budgetPlanned = new BudgetPlanned();
     IsDataLoaded  = false;
 }
Exemplo n.º 6
0
 public async Task UpdateMainPlannedBudget()
 {
     budgetPlanned = GetCurrentMonthData().BudgetPlanned;
     await Save().ConfigureAwait(false);
 }
Exemplo n.º 7
0
 private void SetupCategories(List <BudgetCategoryTemplate> categoriesDesc)
 {
     BudgetPlanned.Setup(categoriesDesc);
     BudgetReal.Setup(categoriesDesc);
 }
Exemplo n.º 8
0
 private BudgetMonth()
 {
     BudgetReal    = new BudgetReal();
     BudgetPlanned = new BudgetPlanned();
 }
Exemplo n.º 9
0
 public void Setup()
 {
     BudgetPlanned.Prepare();
     BudgetReal.Prepare();
 }
Exemplo n.º 10
0
 public void UpdatePlannedBudget(BudgetPlanned newBudgetPlanned)
 {
     BudgetPlanned = new BudgetPlanned(newBudgetPlanned);
 }
Exemplo n.º 11
0
 public double GetTotalIncomePlanned()
 {
     return(BudgetPlanned.GetTotalIncome());
 }
Exemplo n.º 12
0
 public double GetTotalExpensesPlanned()
 {
     return(BudgetPlanned.GetTotalExpenses());
 }