private void BtnTransactionWithdraw_Click(object sender, RoutedEventArgs e)
 {
     if (Calculate("minus", CbFromAccount, _currentUser))
     {
         entities.Transaction transaction = new entities.Transaction
         {
             UserId                = _currentUser.Id,
             RecieverUserId        = _currentUser.Id,
             AccountNumber         = _fromAccountNumber,
             RecieverAccountNumber = _fromAccountNumber,
             TransactionDate       = DateTime.Now,
             Amount                = double.Parse(TbAmount.Text)
         };
         SaveAndRefresh(transaction);
     }
 }
 private void SaveAndRefresh(entities.Transaction newTran)
 {
     _currentUser.Transactions.Add(newTran);
     _tempFromAccount.Balance = _tempFromAccountBalance;
     DbGlobals.ctx.Users.AddOrUpdate(_currentUser);
     DbGlobals.ctx.SaveChanges();
     LBalanceOfFromAccount.Content = string.Format("{0:C}", _tempFromAccountBalance);
     if (CbToAccount.SelectedIndex == CbFromAccount.SelectedIndex)
     {
         LBalanceOfToAccount.Content = string.Format("{0:C}", _tempFromAccountBalance);
     }
     /*LvTransaction.ItemsSource = _currentUser.Transactions.ToList<entities.Transaction>();*/
     LvTransaction.ItemsSource = (from t in DbGlobals.ctx.Transactions
                                  where t.Account.UserId == _currentUser.Id || t.Account2.UserId == _currentUser.Id
                                  select t).ToList();
     LvTransaction.Items.Refresh();
 }
        private void BtnTransactionTransfer_Click(object sender, RoutedEventArgs e)
        {
            if (CbFromAccount.SelectedIndex != -1)
            {
                if (Calculate("minus", CbFromAccount, _currentUser))
                {
                    if (RbToYourAccount.IsChecked == true)
                    {
                        if (CbToAccount.SelectedIndex != -1)
                        {
                            if ((AccountTypeEnum)CbFromAccount.SelectedItem != (AccountTypeEnum)CbToAccount.SelectedItem)
                            {
                                if (Calculate("plus", CbToAccount, _currentUser))
                                {
                                    entities.Transaction transaction = new entities.Transaction
                                    {
                                        UserId                = _currentUser.Id,
                                        RecieverUserId        = _currentUser.Id,
                                        AccountNumber         = _fromAccountNumber,
                                        RecieverAccountNumber = _toAccountNumber,
                                        TransactionDate       = DateTime.Now,
                                        Amount                = double.Parse(TbAmount.Text)
                                    };
                                    SaveAndRefresh(transaction);
                                }
                            }
                            else
                            {
                                MessageBox.Show("Please select a different To Account");
                            }
                        }
                        else
                        {
                            MessageBox.Show("Please select a To Account");
                        }
                    }
                    else if (RbToOtherUserAccount.IsChecked == true)
                    {
                        /*if ((!double.TryParse(TbAmount.Text, out double amount) || amount <= 0))
                         * {
                         *  MessageBox.Show("amount must be positive number");
                         * }*/
                        if (_fromAccountNumber != TbToOtherAccount.Text)

                        {
                            List <Account> result          = null;
                            string         tempAccountNumb = TbToOtherAccount.Text;
                            result = (from a in DbGlobals.ctx.Accounts where a.AccountNumber == tempAccountNumb select a).ToList <Account>();
                            if (result.Count != 0)
                            {
                                List <User> recieverUsers = null;
                                int         tempId        = result[0].UserId;
                                recieverUsers = (from u in DbGlobals.ctx.Users where u.Id == tempId select u).ToList <User>();
                                entities.Transaction transaction = new entities.Transaction
                                {
                                    UserId                = _currentUser.Id,
                                    RecieverUserId        = result[0].UserId,
                                    AccountNumber         = _fromAccountNumber,
                                    RecieverAccountNumber = TbToOtherAccount.Text,
                                    TransactionDate       = DateTime.Now,
                                    Amount                = double.Parse(TbAmount.Text)
                                };
                                SaveAndRefresh(transaction);
                                foreach (var account in recieverUsers[0].Accounts)
                                {
                                    if (account.AccountNumber == TbToOtherAccount.Text)
                                    {
                                        account.Balance += double.Parse(TbAmount.Text);
                                    }
                                }
                                recieverUsers[0].Transactions.Add(transaction);
                                DbGlobals.ctx.Users.AddOrUpdate(recieverUsers[0]);
                                DbGlobals.ctx.SaveChanges();
                            }
                            else
                            {
                                MessageBox.Show("User id can't be found");
                            }
                        }
                        else
                        {
                            MessageBox.Show("Please input another account number");
                        }
                    }
                    else
                    {
                        MessageBox.Show("Please select a To Account");
                    }
                }
            }
            else
            {
                MessageBox.Show("Please select a From Account");
            }
        }