Inheritance: IEntityBase
Esempio n. 1
0
        public void CheckReportingPeriods()
        {
            int nowYear = DateTime.Now.Year;
            int nowDay = DateTime.Now.Day;
            int nowMonth = DateTime.Now.Month;

            Setting settings = _settingsService.GetAll().First();

            bool transferBalance = settings.TransferBalance;
            int startingDay = settings.PeriodStartDay;

            List<MoneyBox> moneyBoxes = _moneyBoxesService.GetAll().ToList();

            foreach (MoneyBox moneyBox in moneyBoxes)
            {
                ReportingPeriod lastYearPeriod = _reportingPeriodsService.GetLastYearPeriod(moneyBox.Id);
                ReportingPeriod lastMonthPeriod = _reportingPeriodsService.GetLastMonthPeriod(moneyBox.Id);

                if (nowYear > lastYearPeriod.Period.Year)
                {
                    ReportingPeriod newYearPeriod = new ReportingPeriod()
                    {
                        Type = ReportingPeriodType.Year,
                        Period = DateTime.Now,
                        Income = transferBalance && (lastYearPeriod.Balance >= 0M) ? lastYearPeriod.Balance : 0M,
                        Expence = transferBalance && (lastYearPeriod.Balance < 0M) ? Math.Abs(lastYearPeriod.Balance) : 0M,
                        Budget = moneyBox.YearBudget,
                    };

                    _reportingPeriodsService.Insert(newYearPeriod, false, false);

                    newYearPeriod.MoneyBox = _moneyBoxesService.Get(moneyBox.Id);

                    newYearPeriod.ParentPeriod = null;

                    _reportingPeriodsService.Update(newYearPeriod, true);

                    lastYearPeriod = newYearPeriod;
                }

                if (nowDay >= startingDay && nowMonth > lastMonthPeriod.Period.Month)
                {
                    ReportingPeriod newMonthPeriod = new ReportingPeriod()
                    {
                        Type = ReportingPeriodType.Month,
                        Period = DateTime.Now,
                        Income = transferBalance && (lastMonthPeriod.Balance >= 0M) ? lastMonthPeriod.Balance : 0M,
                        Expence = transferBalance && (lastMonthPeriod.Balance < 0M) ? Math.Abs(lastMonthPeriod.Balance) : 0M,
                        Budget = moneyBox.MonthBudget,
                    };

                    _reportingPeriodsService.Insert(newMonthPeriod, false, false);

                    newMonthPeriod.MoneyBox = _moneyBoxesService.Get(moneyBox.Id);

                    newMonthPeriod.ParentPeriod = lastYearPeriod;

                    _reportingPeriodsService.Update(newMonthPeriod, true);
                }
            }
        }
        private void SaveAction(object e)
        {
            Validate();

            if (IsValid)
            {
                if (!_isEdit)
                {
                    MoneyBox newMoneyBox = new MoneyBox()
                    {
                        Title = Title,
                        YearBudget = YearBudget,
                        MonthBudget = MonthBudget
                    };

                    _moneyBoxService.Insert(newMoneyBox, false, false);

                    newMoneyBox.PrimaryCurrency = _currenciesService.Get(SelectedPrimaryCurrency.Id);

                    _moneyBoxService.Update(newMoneyBox, true);

                    ReportingPeriod yearPeriod = new ReportingPeriod()
                    {
                        Type = ReportingPeriodType.Year,
                        Period = DateTime.Now,
                        Budget = newMoneyBox.YearBudget,
                    };

                    _reportingPeriodsService.Insert(yearPeriod, false, false);

                    yearPeriod.MoneyBox = _moneyBoxService.Get(newMoneyBox.Id);

                    yearPeriod.ParentPeriod = null;

                    _reportingPeriodsService.Update(yearPeriod, true);

                    ReportingPeriod monthPeriod = new ReportingPeriod()
                    {
                        Type = ReportingPeriodType.Month,
                        Period = DateTime.Now,
                        Budget = newMoneyBox.MonthBudget,
                    };

                    _reportingPeriodsService.Insert(monthPeriod, false, false);

                    monthPeriod.MoneyBox = _moneyBoxService.Get(newMoneyBox.Id);

                    monthPeriod.ParentPeriod = _reportingPeriodsService.Get(yearPeriod.Id);

                    _reportingPeriodsService.Update(monthPeriod, true);

                }
                else
                {
                    _moneyBox.Title = Title;
                    _moneyBox.YearBudget = YearBudget;
                    _moneyBox.MonthBudget = MonthBudget;

                    _moneyBoxService.Insert(_moneyBox, true, false);

                    _moneyBox.PrimaryCurrency = _currenciesService.Get(SelectedPrimaryCurrency.Id);

                    _moneyBoxService.Update(_moneyBox, true);
                }

                _navigationService.ClearNavigationData("MoneyBoxId");
                _navigationService.Navigate(typeof(MoneyBoxesPage));
            }
        }
Esempio n. 3
0
        public void Initialize()
        {
            List<Category> categories = new List<Category>()
            {
                new Category()
                {
                    Title = "Salary",
                    Type = TransactionType.Income,
                    Image = "/Assets/Icons/Light/appbar.currency.dollar.light.png"
                },
                new Category()
                {
                    Title = "Gifts",
                    Type = TransactionType.Income,
                    Image = "/Assets/Icons/Light/appbar.gift.png"
                },
                new Category()
                {
                    Title = "Nightlife",
                    Type = TransactionType.Expence,
                    Image = "/Assets/Icons/Light/appbar.drinks.beer.png"
                },
                new Category()
                {
                    Title = "Food",
                    Type = TransactionType.Expence,
                    Image = "/Assets/Icons/Light/appbar.food.silverware.png"
                },
                new Category()
                {
                    Title = "Electricity",
                    Type = TransactionType.Expence,
                    Image = "/Assets/Icons/Light/appbar.lightbulb.png"
                },
                new Category()
                {
                    Title = "Gifts",
                    Type = TransactionType.Expence,
                    Image = "/Assets/Icons/Light/appbar.gift.png"
                }
            };

            _categoryService.InsertAll(categories, false, false);

            Account account = new Account()
            {
                Username = "******",
                Password = "******",
                Email = "*****@*****.**"
            };

            _accountService.Insert(account, false, false);

            List<Currency> currencies = new List<Currency>()
            {
                new Currency()
                {
                    Title = "United States Dollar",
                    Abbreviation = CurrencyType.USD,
                    Symbol = "$",
                    Image = "/Assets/Icons/Light/appbar.currency.dollar.light.png"
                },
                new Currency()
                {
                    Title = "European Euro",
                    Abbreviation = CurrencyType.EUR,
                    Symbol = "€",
                    Image = "/Assets/Icons/Light/appbar.currency.euro.png"
                },
                new Currency()
                {
                    Title = "Great Britain Pound",
                    Abbreviation = CurrencyType.GBP,
                    Symbol = "£",
                    Image = "/Assets/Icons/Light/appbar.currency.pound.png"
                },
                new Currency()
                {
                    Title = "Ukrainian Hryvna",
                    Abbreviation = CurrencyType.UAH,
                    Symbol = "₴",
                    Image = "/Assets/Icons/Light/appbar.currency.grivna.png"
                },
                new Currency()
                {
                    Title = "Russian Ruble",
                    Abbreviation = CurrencyType.RUB,
                    Symbol = "₽",
                    Image = "/Assets/Icons/Light/appbar.currency.rubles.png"
                }
            };

            _currencyService.InsertAll(currencies, false, false);

            List<CurrencyExchange> currencyExchanges = new List<CurrencyExchange>();

            foreach (Currency from in currencies)
            {
                foreach (Currency to in currencies.Where(c => c.Id != from.Id))
                {
                    currencyExchanges.Add(new CurrencyExchange()
                    {
                        From = from.Abbreviation.ToString(),
                        To = to.Abbreviation.ToString()
                    });
                }
            }

            _currencyExchangeService.InsertAll(currencyExchanges, false, false);

            MoneyBox euroMoneyBox = new MoneyBox()
            {
                Title = "Euro Money Box",
                YearBudget = 80000M,
                MonthBudget = 7000M
            };

            MoneyBox dollarMoneyBox = new MoneyBox()
            {
                Title = "Dollar Money Box",
                YearBudget = 90000M,
                MonthBudget = 7500M
            };

            _moneyBoxesService.Insert(euroMoneyBox, false, false);

            _moneyBoxesService.Insert(dollarMoneyBox, false, false);

            euroMoneyBox.PrimaryCurrency = _currencyService.Get(2);

            _moneyBoxesService.Update(euroMoneyBox, true);

            dollarMoneyBox.PrimaryCurrency = _currencyService.Get(1);

            _moneyBoxesService.Update(dollarMoneyBox, true);

            ReportingPeriod euroMoneyBox2016Period = new ReportingPeriod()
            {
                Type = ReportingPeriodType.Year,
                Period = DateTime.Now,
                Income = 12000M,
                Expence = 6000M,
                Budget = 80000M,
            };

            _reportingPeriodsService.Insert(euroMoneyBox2016Period, false, false);

            euroMoneyBox2016Period.MoneyBox = _moneyBoxesService.Get(1);

            euroMoneyBox2016Period.ParentPeriod = null;

            _reportingPeriodsService.Update(euroMoneyBox2016Period, true);

            ReportingPeriod euroMoneyBoxMarch2016Period = new ReportingPeriod()
            {
                Type = ReportingPeriodType.Month,
                Period = DateTime.Now.AddMonths(-1),
                Income = 10000M,
                Expence = 5000M,
                Budget = 7000M,
            };

            _reportingPeriodsService.Insert(euroMoneyBoxMarch2016Period, false, false);

            euroMoneyBoxMarch2016Period.MoneyBox = _moneyBoxesService.Get(1);

            euroMoneyBoxMarch2016Period.ParentPeriod = _reportingPeriodsService.Get(1);

            _reportingPeriodsService.Update(euroMoneyBoxMarch2016Period, true);

            ReportingPeriod dollarMoneyBox2016Period = new ReportingPeriod()
            {
                Type = ReportingPeriodType.Year,
                Period = DateTime.Now,
                Income = 13000M,
                Expence = 10000M,
                Budget = 80000M,
            };

            _reportingPeriodsService.Insert(dollarMoneyBox2016Period, false, false);

            dollarMoneyBox2016Period.MoneyBox = _moneyBoxesService.Get(2);

            dollarMoneyBox2016Period.ParentPeriod = null;

            _reportingPeriodsService.Update(dollarMoneyBox2016Period, true);

            ReportingPeriod dollarMoneyBoxMarch2016Period = new ReportingPeriod()
            {
                Type = ReportingPeriodType.Month,
                Period = DateTime.Now.AddMonths(-1),
                Income = 7000M,
                Expence = 8000M,
                Budget = 5000M,
            };

            _reportingPeriodsService.Insert(dollarMoneyBoxMarch2016Period, false, false);

            dollarMoneyBoxMarch2016Period.MoneyBox = _moneyBoxesService.Get(2);

            dollarMoneyBoxMarch2016Period.ParentPeriod = _reportingPeriodsService.Get(3);

            _reportingPeriodsService.Update(dollarMoneyBoxMarch2016Period, true);

            Setting setting = new Setting()
            {
                TransferBalance = true,
                PeriodStartDay = 15
            };

            _settingsService.Insert(setting, false, false);
        }