/// <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; }
//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 }); }
/// <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); }
/// <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; }
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); }
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); }
/// <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); }
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(); } } }
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); }
/// <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); }