Esempio n. 1
0
        /// <summary>
        /// Get summe one item undercategory
        /// </summary>
        /// <param name="category"></param>
        /// <param name="nameUnderCategory"></param>
        /// <param name="monat"></param>
        /// <param name="year"></param>
        /// <returns></returns>
        internal async Task <decimal> GetSummeAsync(string category, string nameUnderCategory, int monat, int year)
        {
            var uNFI = new UserNumberFormat();

            decimal?summeTemp;

            //decimal summe;

            using (var dataBase = new Store.DataBase.DataBaseEF.DataBaseFile())
            {
                summeTemp = await dataBase.Costs.AsNoTracking()
                            .Select(c => new
                {
                    nameCategory      = c.CategoryOfCost,
                    nameUnderCategory = c.CategoryUnderOfCost,
                    price             = (decimal?)Decimal.Parse(c.PreisOfCost,
                                                                NumberStyles.Number | NumberStyles.AllowCurrencySymbol, uNFI.GetNFI()),
                    datum = c.DateOfCost
                })
                            .Where(a => a.datum.Month == monat & a.datum.Year == year && a.nameCategory == category && a.nameUnderCategory == nameUnderCategory)
                            .Select(a => a.price).SumAsync();
            }
            _summeItem = (decimal)summeTemp;
            //summe = (decimal)summeTemp;
            return(_summeItem);
        }
        //Berechnet for ganze Jahr
        public async Task BalanceForYearAsync()
        {
            var uNFI = new UserNumberFormat();

            decimal?summeCostsTemp, summeIncomesTemp;

            using (var dataBase = new Store.DataBase.DataBaseEF.DataBaseFile())
            {
                summeIncomesTemp = await dataBase.Incomes.AsNoTracking()
                                   .Select(c => new
                {
                    price = (decimal?)Decimal.Parse(c.PreisOfIncome,
                                                    NumberStyles.Number | NumberStyles.AllowCurrencySymbol, uNFI.GetNFI()),
                    datum = c.DateOfIncome
                })
                                   .Where(a => a.datum.Year == _year)
                                   .Select(a => a.price).SumAsync();
            }

            using (var dataBase = new Store.DataBase.DataBaseEF.DataBaseFile())
            {
                summeCostsTemp = await dataBase.Costs.AsNoTracking()
                                 .Select(c => new
                {
                    price = (decimal?)Decimal.Parse(c.PreisOfCost, NumberStyles.Number | NumberStyles.AllowCurrencySymbol, uNFI.GetNFI()),
                    datum = c.DateOfCost
                })
                                 .Where(a => a.datum.Year == _year)
                                 .Select(a => a.price).SumAsync();
            }

            _ausgabeForYear        = (decimal)summeCostsTemp;
            _einnahmeForYear       = (decimal)summeIncomesTemp;
            BalanceForYearProperty = _einnahmeForYear + _ausgabeForYear;
        }
Esempio n. 3
0
        //Alle Kost beitrege, wird in GetBalanceListeAsync benutzt
        public static async Task <ListBalance> GetNewCostsBalanceAsync(int i)
        {
            string name, preis, category, underCategory, costsOrIncomes;
            //int category, underCategory;
            long     id;
            DateTime datum;

            //var optionsBuilder = new DbContextOptionsBuilder<Store.DataBase.DataBaseEF.DataBaseFile>();
            //optionsBuilder.UseSqlite("Filename=Balance.db");
            //using (var dataBase = new Store.DataBase.DataBaseEF.DataBaseFile(optionsBuilder.Options))
            using (var dataBase = new Store.DataBase.DataBaseEF.DataBaseFile())
            {
                id = await
                         (from nameCost in dataBase.Costs
                         where nameCost.CostId == i
                         select nameCost.CostId).FirstOrDefaultAsync();
                name = await
                           (from nameCost in dataBase.Costs
                           where nameCost.CostId == i
                           select nameCost.NameOfCost).FirstOrDefaultAsync();
                preis = await
                            (from nameCost in dataBase.Costs
                            where nameCost.CostId == i
                            select nameCost.PreisOfCost).FirstOrDefaultAsync();
                datum = await
                            (from nameCost in dataBase.Costs
                            where nameCost.CostId == i
                            select nameCost.DateOfCost).FirstOrDefaultAsync();
                category = await
                               (from nameCost in dataBase.Costs
                               where nameCost.CostId == i
                               select nameCost.CategoryOfCost).FirstOrDefaultAsync();
                underCategory = await
                                    (from nameCost in dataBase.Costs
                                    where nameCost.CostId == i
                                    select nameCost.CategoryUnderOfCost).FirstOrDefaultAsync();
                costsOrIncomes = await
                                     (from nameCost in dataBase.Costs
                                     select nameCost.CostsOrIncomes).FirstOrDefaultAsync();
            }

            return(new ListBalance()
            {
                ID = id,
                Name = name,
                Preis = preis,
                Datum = datum,
                Category = category,
                UnderCategory = underCategory,
                CostsOrIncomes = costsOrIncomes
            });
        }
Esempio n. 4
0
        /// <summary>
        /// For Bereichs Datum
        /// </summary>
        /// <param name="ersteDatum"></param>
        /// <param name="zweiteDatum"></param>
        /// <param name="category"></param>
        /// <returns></returns>
        internal async static Task <ObservableCollection <ListBalance> > GetBalanceListeAsync(DateTime ersteDatum, DateTime zweiteDatum, string category)
        {
            ObservableCollection <ListBalance> balances = new ObservableCollection <ListBalance>();

            var cost   = new List <Store.DataBase.DataBaseEF.Cost>();
            var income = new List <Store.DataBase.DataBaseEF.Income>();


            using (var dataBase = new Store.DataBase.DataBaseEF.DataBaseFile())
            {
                if (category == CategoryNamenIncomen.Salary.ToString() || category == CategoryNamenIncomen.OtherIncomes.ToString())
                {
                    income = await
                                 (from nameIncome in dataBase.Incomes
                                 where nameIncome.DateOfIncome.Date >= ersteDatum && nameIncome.DateOfIncome.Date <= zweiteDatum && nameIncome.CategoryOfIncome == category
                                 select nameIncome).ToListAsync();
                }
                else
                {
                    cost = await
                               (from nameCost in dataBase.Costs
                               where nameCost.DateOfCost.Date >= ersteDatum && nameCost.DateOfCost.Date <= zweiteDatum && nameCost.CategoryOfCost == category
                               select nameCost).ToListAsync();
                }
            }

            if (category == CategoryNamenIncomen.Salary.ToString() || category == CategoryNamenIncomen.OtherIncomes.ToString())
            {
                foreach (var item in income)
                {
                    ListBalance listBalance = new ListBalance();
                    listBalance = await GetNewIncomesBalanceAsync(item.IncomeId);

                    balances.Add(listBalance);
                }
            }
            else
            {
                foreach (var item in cost)
                {
                    ListBalance listBalance = new ListBalance();
                    listBalance = await GetNewCostsBalanceAsync(item.CostId);

                    balances.Add(listBalance);
                }
            }
            return(balances);
        }
Esempio n. 5
0
        /// <summary>
        /// Default Construktor
        /// </summary>
        public SaveResult()
        {
            this.InitializeComponent();
            uNFI = new UserNumberFormat();
            var loader = new Windows.ApplicationModel.Resources.ResourceLoader();

            btnSpeichern.Content = loader.GetString("BtnSave");

            comboBox.SelectedIndex = IndexComboBox;
            txtBoxWert.Text        = 0.ToString("C", uNFI.GetNFI());
            //optionsBuilder = new DbContextOptionsBuilder<Store.DataBase.DataBaseEF.DataBaseFile>();
            //optionsBuilder.UseSqlite("Filename=Balance.db");
            //dataBase = new Store.DataBase.DataBaseEF.DataBaseFile(optionsBuilder.Options);
            dataBase     = new Store.DataBase.DataBaseEF.DataBaseFile();
            this.Loaded += SaveResult_Loaded;
        }
Esempio n. 6
0
        internal async static Task <ObservableCollection <ListBalance> > GetBalanceListeAsync(CategoryCostIncomen category, int monat, int year)
        {
            ObservableCollection <ListBalance> balances = new ObservableCollection <ListBalance>();
            ListBalance listBalance = new ListBalance();
            var         cost        = new List <Store.DataBase.DataBaseEF.Cost>();
            var         income      = new List <Store.DataBase.DataBaseEF.Income>();

            //var optionsBuilder = new DbContextOptionsBuilder<Store.DataBase.DataBaseEF.DataBaseFile>();
            //optionsBuilder.UseSqlite("Filename=Balance.db");
            //using (var dataBase = new Store.DataBase.DataBaseEF.DataBaseFile(optionsBuilder.Options))
            if (category == CategoryCostIncomen.Cost)
            {
                using (var dataBase = new Store.DataBase.DataBaseEF.DataBaseFile())
                {
                    cost = await
                               (from nameCost in dataBase.Costs
                               where nameCost.DateOfCost.Month == monat && nameCost.DateOfCost.Year == year
                               select nameCost).ToListAsync();
                }
                foreach (var item in cost)
                {
                    listBalance = await GetNewCostsBalanceAsync(item.CostId);

                    balances.Add(listBalance);
                }
            }
            else
            {
                using (var dataBase = new Store.DataBase.DataBaseEF.DataBaseFile())
                {
                    income = await
                                 (from nameIncome in dataBase.Incomes
                                 where nameIncome.DateOfIncome.Month == monat && nameIncome.DateOfIncome.Year == year
                                 select nameIncome).ToListAsync();
                }
                foreach (var item in income)
                {
                    listBalance = await GetNewIncomesBalanceAsync(item.IncomeId);

                    balances.Add(listBalance);
                }
            }

            return(balances);
        }
Esempio n. 7
0
        private async Task <decimal> SummeRechnenAsync(string category, int monat, int year)
        {
            var uNFI = new UserNumberFormat();

            decimal?summeTemp;

            if (category == CategoryNamenIncomen.Salary.ToString() || category == CategoryNamenIncomen.OtherIncomes.ToString())
            {
                using (var dataBase = new Store.DataBase.DataBaseEF.DataBaseFile())
                {
                    summeTemp = await dataBase.Incomes.AsNoTracking()
                                .Select(c => new
                    {
                        nameCategory = c.CategoryOfIncome,
                        price        = (decimal?)Decimal.Parse(c.PreisOfIncome,
                                                               NumberStyles.Number | NumberStyles.AllowCurrencySymbol, uNFI.GetNFI()),
                        datum = c.DateOfIncome
                    })
                                .Where(a => a.datum.Month == monat & a.datum.Year == year && a.nameCategory == category)
                                .Select(a => a.price).SumAsync();
                }
            }
            else
            {
                using (var dataBase = new Store.DataBase.DataBaseEF.DataBaseFile())
                {
                    summeTemp = await dataBase.Costs.AsNoTracking()
                                .Select(c => new
                    {
                        nameCategory = c.CategoryOfCost,
                        price        = (decimal?)Decimal.Parse(c.PreisOfCost,
                                                               NumberStyles.Number | NumberStyles.AllowCurrencySymbol, uNFI.GetNFI()),
                        datum = c.DateOfCost
                    })
                                .Where(a => a.datum.Month == monat & a.datum.Year == year && a.nameCategory == category)
                                .Select(a => a.price).SumAsync();
                }
            }
            _summeItem = (decimal)summeTemp;
            return(_summeItem);
        }
Esempio n. 8
0
        /// <summary>
        /// For CalendarPage Get all Liste Incomes and Costs
        /// </summary>
        /// <param name="datum"></param>
        /// <returns></returns>
        public async static Task <ObservableCollection <ListBalance> > GetBalanceListeAsync(DateTime datum)
        {
            ObservableCollection <ListBalance> balances = new ObservableCollection <ListBalance>();

            var cost   = new List <Store.DataBase.DataBaseEF.Cost>();
            var income = new List <Store.DataBase.DataBaseEF.Income>();

            //var optionsBuilder = new DbContextOptionsBuilder<Store.DataBase.DataBaseEF.DataBaseFile>();
            //optionsBuilder.UseSqlite("Filename=Balance.db");
            //using (var dataBase = new Store.DataBase.DataBaseEF.DataBaseFile(optionsBuilder.Options))
            using (var dataBase = new Store.DataBase.DataBaseEF.DataBaseFile())
            {
                cost = await
                           (from nameCost in dataBase.Costs
                           where nameCost.DateOfCost.Date == datum.Date
                           select nameCost).ToListAsync();
                income = await
                             (from nameIncome in dataBase.Incomes
                             where nameIncome.DateOfIncome.Date == datum.Date
                             select nameIncome).ToListAsync();
            }

            foreach (var item in cost)
            {
                ListBalance listBalance = new ListBalance();
                listBalance = await GetNewCostsBalanceAsync(item.CostId);

                balances.Add(listBalance);
            }
            foreach (var item in income)
            {
                ListBalance listBalance = new ListBalance();
                listBalance = await GetNewIncomesBalanceAsync(item.IncomeId);

                balances.Add(listBalance);
            }
            return(balances);
        }
Esempio n. 9
0
        private async Task DeleteItemsBtns(ListView listView)
        {
            if (listView.SelectedIndex != -1)
            {
                List <ListBalance> selectedItems = new List <ListBalance>();
                //Um die Deleten vom ListView moglich machen

                var loader = new Windows.ApplicationModel.Resources.ResourceLoader();

                foreach (ListBalance balance in listView.SelectedItems)
                {
                    selectedItems.Add(balance);
                }
                var dialogContent = new ContentDialog()
                {
                    FontFamily          = new FontFamily("Segoe Print"),
                    Background          = new SolidColorBrush(Color.FromArgb(255, 69, 184, 234)),
                    Foreground          = new SolidColorBrush(Colors.White),
                    Title               = loader.GetString("TtlDelete"),
                    Content             = loader.GetString("DialogContent"),
                    PrimaryButtonText   = loader.GetString("Yes"),
                    SecondaryButtonText = loader.GetString("No")
                };
                ContentDialogResult result = await dialogContent.ShowAsync();;

                foreach (ListBalance balance in selectedItems)
                {
                    switch (balance.CostsOrIncomes)
                    {
                        #region Costs Case

                    case "Cost":
                        if (result == ContentDialogResult.Primary)
                        {
                            using (var db = new Store.DataBase.DataBaseEF.DataBaseFile())
                            {
                                var name =
                                    (from nameCosts in db.Costs
                                     where nameCosts.CostId == balance.ID
                                     select nameCosts).FirstOrDefault();
                                db.Costs.Remove(name);
                                db.SaveChanges();
                            }
                        }
                        break;

                        #endregion

                        #region Incomes  Case

                    case "Income":
                        if (result == ContentDialogResult.Primary)
                        {
                            using (var db = new Store.DataBase.DataBaseEF.DataBaseFile())
                            {
                                var name =
                                    (from nameIncomes in db.Incomes
                                     where nameIncomes.IncomeId == balance.ID
                                     select nameIncomes).FirstOrDefault();
                                db.Incomes.Remove(name);
                                db.SaveChanges();
                            }
                        }
                        break;

                        #endregion

                    default:
                        break;
                    }
                }

                if (result == ContentDialogResult.Primary)
                {
                    var uNFI = new UserNumberFormat();

                    await datenViewModel.BalanceForYearAsync();

                    await datenViewModel.CostIncomeSummeAsync();
                }
            }
        }
Esempio n. 10
0
        public async Task CostIncomeSummeAsync()
        {
            var uNFI = new UserNumberFormat();

            decimal?summeCostsTemp, summeIncomesTemp;

            using (var dataBase = new Store.DataBase.DataBaseEF.DataBaseFile())
            {
                summeIncomesTemp = await dataBase.Incomes.AsNoTracking()
                                   .Select(c => new
                {
                    price = (decimal?)Decimal.Parse(c.PreisOfIncome,
                                                    NumberStyles.Number | NumberStyles.AllowCurrencySymbol, uNFI.GetNFI()),
                    datum = c.DateOfIncome
                })
                                   .Where(a => a.datum.Month == _monat & a.datum.Year == _year)
                                   .Select(a => a.price).SumAsync();
            }

            using (var dataBase = new Store.DataBase.DataBaseEF.DataBaseFile())
            {
                summeCostsTemp = await dataBase.Costs.AsNoTracking()
                                 .Select(c => new
                {
                    price = (decimal?)Decimal.Parse(c.PreisOfCost, NumberStyles.Number | NumberStyles.AllowCurrencySymbol, uNFI.GetNFI()),
                    datum = c.DateOfCost
                })
                                 .Where(a => a.datum.Month == _monat & a.datum.Year == _year)
                                 .Select(a => a.price).SumAsync();
            }

            _ausgabe  = (decimal)summeCostsTemp;
            _einnahme = (decimal)summeIncomesTemp;
            _balanceEinnahmeAusgabe = _einnahme + _ausgabe;


            if (_ausgabe == 0 | _einnahme == 0)
            {
                if (_ausgabe == 0)
                {
                    _percentAusgabe = 0;
                }
                else
                {
                    _percentAusgabe = (_ausgabe * -1) / (_einnahme - _ausgabe);
                }
                if (_einnahme == 0)
                {
                    _percentEinnahme = 0;
                }
                else
                {
                    _percentEinnahme = _einnahme / (_einnahme - _ausgabe);
                }
            }
            else
            {
                _percentEinnahme = _einnahme / (_einnahme - _ausgabe);
                _percentAusgabe  = (_ausgabe * -1) / (_einnahme - _ausgabe);
            }
        }
        private async void DeleteItemsBtn_Click(object sender, RoutedEventArgs e)
        {
            if (BalanceListView.SelectedIndex != -1)
            {
                List <ListBalance> selectedItems = new List <ListBalance>();
                //Um die Deleten vom ListView moglich machen

                var loader = new Windows.ApplicationModel.Resources.ResourceLoader();

                foreach (ListBalance balance in BalanceListView.SelectedItems)
                {
                    selectedItems.Add(balance);
                }
                var dialogContent = new ContentDialog()
                {
                    FontFamily          = new FontFamily("Segoe Print"),
                    Background          = new SolidColorBrush(Color.FromArgb(255, 69, 184, 234)),
                    Foreground          = new SolidColorBrush(Colors.White),
                    Title               = loader.GetString("TtlDelete"),
                    Content             = loader.GetString("DialogContent"),
                    PrimaryButtonText   = loader.GetString("Yes"),
                    SecondaryButtonText = loader.GetString("No")
                };
                ContentDialogResult result = await dialogContent.ShowAsync();;

                foreach (ListBalance balance in selectedItems)
                {
                    switch (balance.CostsOrIncomes)
                    {
                        #region Costs Case

                    case "Cost":
                        if (result == ContentDialogResult.Primary)
                        {
                            using (var db = new Store.DataBase.DataBaseEF.DataBaseFile())
                            {
                                var name =
                                    (from nameCosts in db.Costs
                                     where nameCosts.CostId == balance.ID
                                     select nameCosts).FirstOrDefault();
                                db.Costs.Remove(name);
                                db.SaveChanges();
                            }
                        }
                        break;

                        #endregion

                        #region Incomes  Case

                    case "Income":
                        if (result == ContentDialogResult.Primary)
                        {
                            using (var db = new Store.DataBase.DataBaseEF.DataBaseFile())
                            {
                                var name =
                                    (from nameIncomes in db.Incomes
                                     where nameIncomes.IncomeId == balance.ID
                                     select nameIncomes).FirstOrDefault();
                                db.Incomes.Remove(name);
                                db.SaveChanges();
                            }
                        }
                        break;

                        #endregion

                    default:
                        break;
                    }
                }
            }
            //Page aktualisieren
            if (this.Frame != null && this.Frame.CanGoBack)
            {
                this.Frame.GoBack();
            }
            this.Frame.Navigate(typeof(CalendarPage_Mobile), null);
        }
Esempio n. 12
0
        /// <summary>
        /// Rechnet was fur wieviel Category in Cost und Incomen
        /// dann rechnet ganze Summe von Cost oder Incomen
        /// </summary>
        /// <param name="category">Category von CatergoryIncomenCost</param>
        /// <param name="monat">Monat</param>
        /// <param name="year">Year</param>
        /// <returns></returns>
        public async Task <ObservableCollection <Balance> > HomePageDatenSourceLoadedAsync(CategoryCostIncomen category, int monat, int year)
        {
            decimal?summeTemp;
            ObservableCollection <Balance> data = new ObservableCollection <Balance>();

            List <string> listString = new List <string>();

            if (category == CategoryCostIncomen.Cost)
            {
                List <CategoryNamenCosts> costs = Enum.GetValues(typeof(CategoryNamenCosts))
                                                  .Cast <CategoryNamenCosts>()
                                                  .ToList();
                //add alle Category fur nachste rechnung in GetDatenCollection(List<string> listString)
                foreach (var item in costs)
                {
                    listString.Add(item.ToString());
                }
                var uNFI = new Views.Mobile.CostsIncomes.UserNumberFormat();

                //rechnet ganze Summe von Costs
                using (var dataBase = new Store.DataBase.DataBaseEF.DataBaseFile())
                {
                    summeTemp = await dataBase.Costs.AsNoTracking()
                                .Select(c => new
                    {
                        nameCategory = c.CategoryOfCost,
                        price        = (decimal?)Decimal.Parse(c.PreisOfCost,
                                                               NumberStyles.Number | NumberStyles.AllowCurrencySymbol, uNFI.GetNFI()),
                        datum = c.DateOfCost
                    })
                                .Where(a => a.datum.Month == monat & a.datum.Year == year)
                                .Select(a => a.price).SumAsync();
                }
                _summeItems = (decimal)summeTemp;
            }
            else
            {
                List <CategoryNamenIncomen> incomen = Enum.GetValues(typeof(CategoryNamenIncomen))
                                                      .Cast <CategoryNamenIncomen>()
                                                      .ToList();
                foreach (var item in incomen)
                {
                    listString.Add(item.ToString());
                }
                var uNFI = new Views.Mobile.CostsIncomes.UserNumberFormat();

                //rechnet ganze Summe von Incomen
                using (var dataBase = new Store.DataBase.DataBaseEF.DataBaseFile())
                {
                    summeTemp = await dataBase.Incomes.AsNoTracking()
                                .Select(c => new
                    {
                        nameCategory = c.CategoryOfIncome,
                        price        = (decimal?)Decimal.Parse(c.PreisOfIncome,
                                                               NumberStyles.Number | NumberStyles.AllowCurrencySymbol, uNFI.GetNFI()),
                        datum = c.DateOfIncome
                    })
                                .Where(a => a.datum.Month == monat & a.datum.Year == year)
                                .Select(a => a.price).SumAsync();
                }
                _summeItems = (decimal)summeTemp;
            }

            data = await GetDatenCollection(listString);

            return(data);
        }