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 = "";
        }
Example #2
0
        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();
        }
Example #3
0
        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();
        }
Example #4
0
        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();
        }
Example #5
0
        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 = "";
        }