public IActionResult Account(int userId) { if (HttpContext.Session.GetString("userName") == null) { return(RedirectToAction("Index")); } else { int? UserInSession = HttpContext.Session.GetInt32("userId"); User LoggedIn = dbContext.Users.FirstOrDefault(u => u.UserId == (int)UserInSession); if (userId != LoggedIn.UserId) { return(RedirectToAction("Failure")); } NewTransactionViewModel viewMod = new NewTransactionViewModel(); viewMod.AccountUser = dbContext.Users.Include(user => user.Transactions).FirstOrDefault(u => u.UserId == LoggedIn.UserId); float SumOfTransactions = 0; foreach (Transaction t in viewMod.AccountUser.Transactions) { SumOfTransactions += t.Amount; } ViewBag.Balance = SumOfTransactions; return(View(viewMod)); } }
public IActionResult Transaction(NewTransactionViewModel Deposit) { if (ModelState.IsValid) { User person = dbContext.Users.Include(t => t.Transactions).FirstOrDefault(u => u.UserId == (int)HttpContext.Session.GetInt32("userId")); float SumOfTransactions = 0; foreach (Transaction t in person.Transactions) { SumOfTransactions += t.Amount; } if (SumOfTransactions + Deposit.NewTransaction.Amount < 0) { ModelState.AddModelError("NewTransaction.Amount", "Insufficient funds"); int? UserInSession = HttpContext.Session.GetInt32("userId"); User LoggedIn = dbContext.Users.FirstOrDefault(u => u.UserId == (int)UserInSession); NewTransactionViewModel viewMod = new NewTransactionViewModel(); viewMod.AccountUser = dbContext.Users.Include(user => user.Transactions).FirstOrDefault(u => u.UserId == LoggedIn.UserId); return(View("Account", viewMod)); } int? InSession = HttpContext.Session.GetInt32("userId"); User ThisUser = dbContext.Users.FirstOrDefault(u => u.UserId == (int)InSession); Deposit.NewTransaction.UserId = ThisUser.UserId; dbContext.Transactions.Add(Deposit.NewTransaction); dbContext.SaveChanges(); return(RedirectToAction("Account", new{ userId = (int)ThisUser.UserId })); } else { int? UserInSession = HttpContext.Session.GetInt32("userId"); User LoggedIn = dbContext.Users.FirstOrDefault(u => u.UserId == (int)UserInSession); NewTransactionViewModel viewMod = new NewTransactionViewModel(); viewMod.AccountUser = dbContext.Users.Include(user => user.Transactions).FirstOrDefault(u => u.UserId == LoggedIn.UserId); return(View("Account", viewMod)); } }
public NewTransactionPage(NewTransactionViewModel _viewModel) { InitializeComponent(); viewModel = _viewModel; BindingContext = viewModel; }
public NewTransactionPage(Account account) { InitializeComponent(); BindingContext = _viewModel = new NewTransactionViewModel(account); MessagingCenter.Subscribe <NewTransactionViewModel, ModelAction <Transaction> >(this, Messages.Add, async(obj, trans) => { await DismissAsync(); }); }
public ActionResult TransactionForm() { var accounts = getAccounts(); var debitTransactionTypes = getDebitTransactionTypes(); var creditTransactionTypes = getCreditTransactionTypes(); var transactionFormViewModel = new NewTransactionViewModel { Accounts = accounts, DebitTransactionTypes = debitTransactionTypes, CreditTransactionTypes = creditTransactionTypes, TransactionDate = DateTime.Now }; //Given the list of accounts, the user will be able to selecte accounts return(View(transactionFormViewModel)); }
public NewTransactionPage() { InitializeComponent(); BindingContext = new NewTransactionViewModel(); SaveButton.Clicked += SaveButton_Clicked; }
public NewTransactionView() { InitializeComponent(); ViewModel = new NewTransactionViewModel(); DataContext = ViewModel; }
public NewTransactionPage() { InitializeComponent(); BindingContext = this._viewModel = new NewTransactionViewModel(); _dataStore = new MyFamilyManageDataStore(); }
public ActionResult ProcessTransaction(NewTransactionViewModel model) { //---- Variables ------// int primaryAccountId = model.SelectedPrimaryAccountId; int targetAccountId = model.SelectedTargetAccountId; double transactionAmount = model.TransactionAmount; string comment = model.Comment; DateTime transactionDate = model.TransactionDate; string op = TransactionType.Add; // Add is default int transactionTypeId = 0; //Debit Transaction Type if (model.SelectedDebitTransactionType != null) { transactionTypeId = Int32.Parse(model.SelectedDebitTransactionType); System.Diagnostics.Debug.WriteLine(transactionTypeId); if (transactionTypeId == (int)TransactionType.Deposit) { //Add amount System.Diagnostics.Debug.WriteLine("Adding"); op = TransactionType.Add; } else { //substract amount op = TransactionType.Substract; } } //Credit Transaction Type else { transactionTypeId = Int32.Parse(model.SelectedCreditTransactionType); if (transactionTypeId == (int)TransactionType.Payment) { //subtract amount op = TransactionType.Substract; } else { //add amount op = TransactionType.Add; } } //Create Transaction createTransaction(primaryAccountId, transactionTypeId, transactionAmount, transactionDate, comment); //Create 2nd Transasction if TransactionType is Transfer int targetAccountTypeId = 0; if (targetAccountId != 0) { //check targetAccountType targetAccountTypeId = retrieveAccountTypeIdByAccountId(targetAccountId); if (targetAccountTypeId == AccountType.CreditCard) { createTransaction(targetAccountId, TransactionType.Payment, transactionAmount, transactionDate, comment); } else { createTransaction(targetAccountId, TransactionType.Deposit, transactionAmount, transactionDate, comment); } } bool updateRes = updateAccountBalance(primaryAccountId, transactionAmount, op); if (targetAccountId != 0) { if (targetAccountTypeId == AccountType.CreditCard) { updateAccountBalance(targetAccountId, transactionAmount, TransactionType.Substract); } else { updateAccountBalance(targetAccountId, transactionAmount, TransactionType.Add); } } return(RedirectToAction("Index")); }