private void Button_Click(object sender, RoutedEventArgs e) { if (string.IsNullOrWhiteSpace(TranSum.Text)) { var mb = new FamilyOrganizerMessageBox("The sum is required"); mb.Show(); return; } if (!_intAndFloat.IsMatch(TranSum.Text)) { var mb = new FamilyOrganizerMessageBox("The sum is invalid"); mb.Show(); return; } var sum = Convert.ToDouble(TranSum.Text); var toUser = _currentUser; var transaction = new Transaction { Type = "Deposit", Date = DateTime.Now, Sum = sum, ToUser = toUser }; _context.Transactions.Add(transaction); _currentUser.Balance += sum; _context.Entry(_currentUser).State = EntityState.Modified; var currentBalanceEntry = _context.Balances.OrderByDescending(b => b.Date).FirstOrDefault(); if (currentBalanceEntry == null) { currentBalanceEntry = new Balance { Date = DateTime.Now } } ; var currentBalance = _context.AppUsers.Sum(u => u.Balance); if (currentBalanceEntry.Date.Day == transaction.Date.Day && _context.Balances.Count() > 0) { _context.Balances.Remove(currentBalanceEntry); } _context.Balances.Add(new Balance { Date = transaction.Date, CurrentBalance = currentBalance + sum }); _context.SaveChanges(); TranSum.Text = ""; }
private void addItem_Click(object sender, RoutedEventArgs e) { if (string.IsNullOrWhiteSpace(ItemsToBuyInput.Text) || ItemsToBuyInput.Text == "What to buy?") { // Refresh(); return; } var shoppingPlan = new ShoppingPlan { Item = ItemsToBuyInput.Text }; if (_currentUser.Role == "Parent") { shoppingPlan.Accepted = true; } else { shoppingPlan.Accepted = false; } if (!_context.ShoppingPlans.Any(p => p.Item == shoppingPlan.Item)) { _context.ShoppingPlans.Add(shoppingPlan); try { _context.SaveChanges(); } catch { Refresh(); } } ItemsToBuyInput.Text = "What to buy?"; ItemsToBuyInput.Foreground = Brushes.Gray; addItem.Focus(); Refresh(); }
public static void SeedBalances(FamilyOrganizerContext context) { if (context.Balances.Any()) { return; } var balancesJson = (File.ReadAllText(@".\DB\Seed\BalancesSeed.json")); var balances = JsonSerializer.Deserialize <IEnumerable <Balance> >(balancesJson); context.Balances.AddRange(balances); context.SaveChanges(); }
public static void SeedTransactions(FamilyOrganizerContext context) { if (context.Transactions.Any()) { return; } var transactionsJson = (File.ReadAllText(@".\DB\Seed\TransactionsSeed.json")); var transactions = JsonSerializer.Deserialize <IEnumerable <Transaction> >(transactionsJson); context.Transactions.AddRange(transactions); context.SaveChanges(); }
private void Button_Click(object sender, RoutedEventArgs e) { if (string.IsNullOrWhiteSpace(TranSum.Text)) { var mb = new FamilyOrganizerMessageBox("The sum is required"); mb.Show(); return; } if (!_intAndFloat.IsMatch(TranSum.Text)) { var mb = new FamilyOrganizerMessageBox("The sum is invalid"); mb.Show(); return; } var toUsername = ToUser.SelectedItem?.ToString(); var sum = -Convert.ToDouble(TranSum.Text); var toUser = _currentUser; var type = "Money transfer"; if (_currentUser.Balance < Math.Abs(sum) && (TypeChoice.SelectedItem as ComboBoxItem).Content?.ToString() != "Deposit") { var mb = new FamilyOrganizerMessageBox("You don't have enough money"); mb.Show(); return; } switch ((TypeChoice.SelectedItem as ComboBoxItem)?.Content?.ToString()) { case "Transfer": _currentUser.Balance += sum; _context.Entry(_currentUser).State = EntityState.Modified; toUser = _context.AppUsers.FirstOrDefault(u => u.UserName == toUsername); sum = -sum; break; case "Deposit": sum = -sum; _currentUser.Balance += sum; _context.Entry(_currentUser).State = EntityState.Modified; type = "Deposit"; break; case "Expense": _currentUser.Balance += sum; _context.Entry(_currentUser).State = EntityState.Modified; type = (CategoryChoice.SelectedItem as ComboBoxItem).Content?.ToString(); break; default: return; } var transaction = new Transaction { Type = type, Date = DateTime.Now, Sum = sum, ToUser = toUser }; _context.Transactions.Add(transaction); if (transaction.ToUser != _currentUser) // transfer { toUser.Balance += sum; _context.Entry(toUser).State = EntityState.Modified; _context.Transactions.Add(new Transaction { Type = transaction.Type, Date = transaction.Date, Sum = -transaction.Sum, ToUser = _currentUser }); } else { var currentBalanceEntry = _context.Balances.OrderByDescending(b => b.Date).FirstOrDefault(); if (currentBalanceEntry == null) { currentBalanceEntry = new Balance { Date = DateTime.Now } } ; var currentBalance = _context.AppUsers.Sum(u => u.Balance); if (currentBalanceEntry.Date.Day == transaction.Date.Day && _context.Balances.Count() > 0) { _context.Balances.Remove(currentBalanceEntry); } _context.Balances.Add(new Balance { Date = transaction.Date, CurrentBalance = currentBalance + sum }); } _context.SaveChanges(); TranSum.Text = ""; }