Ejemplo n.º 1
0
 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));
     }
 }
Ejemplo n.º 2
0
 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));
     }
 }
Ejemplo n.º 3
0
        public NewTransactionPage(NewTransactionViewModel _viewModel)
        {
            InitializeComponent();

            viewModel = _viewModel;


            BindingContext = viewModel;
        }
Ejemplo n.º 4
0
        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));
        }
Ejemplo n.º 6
0
 public NewTransactionPage()
 {
     InitializeComponent();
     BindingContext      = new NewTransactionViewModel();
     SaveButton.Clicked += SaveButton_Clicked;
 }
Ejemplo n.º 7
0
 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"));
        }