Exemple #1
0
        // GET: FundTransfers
        public ActionResult Index()
        {
            if (GlobalVariable.PreventIntruder(Session["CustomerID"]))
            {
                return(RedirectToAction("Index", "Logins"));
            }

            int            CustomerID   = Convert.ToInt32(Session["CustomerID"]);
            BankAccount    bankAccount  = db.BankAccount.ReadByCustomerID(CustomerID);
            VMFundTransfer fundTransfer = new VMFundTransfer();

            ViewBag.AccountType         = new SelectList(db.BankAccount.IReadByCustomerID(CustomerID), "AccountType", "AccountType");
            ViewBag.AccountNo           = new SelectList(db.BankAccount.IReadByCustomerID(CustomerID), "AccountNo", "AccountNo");
            fundTransfer.AccountBalance = bankAccount.AccountBalance;

            return(View(fundTransfer));
        }
Exemple #2
0
        public ActionResult Index(VMFundTransfer VMFundTransfer)
        {
            int            CustomerID   = Convert.ToInt32(Session["CustomerID"]);
            BankAccount    bankAccount  = db.BankAccount.ReadByCustomerID(CustomerID);
            VMFundTransfer fundTransfer = new VMFundTransfer();

            ViewBag.AccountType         = new SelectList(db.BankAccount.IReadByCustomerID(CustomerID), "AccountType", "AccountType");
            ViewBag.AccountNo           = new SelectList(db.BankAccount.IReadByCustomerID(CustomerID), "AccountNo", "AccountNo");
            fundTransfer.AccountBalance = bankAccount.AccountBalance;

            BankAccount OwnerAccount     = db.BankAccount.ReadByCustomerID(Convert.ToInt32(Session["CustomerID"]));
            BankAccount RecipientAccount = db.BankAccount.ReadByAccountNo(VMFundTransfer.RecipientAccount);

            if (RecipientAccount == null || RecipientAccount.Bank != VMFundTransfer.RecipientBank)
            {
                ViewBag.ErrorMessage = "Recipient Account Does Not Exist !";

                return(View(fundTransfer));
            }

            response = GlobalVariable.WebApiClient.GetAsync(string.Concat(controller, $"/{OwnerAccount.ID}")).Result;
            BankAccount Owner = response.Content.ReadAsAsync <BankAccount>().Result;

            response = GlobalVariable.WebApiClient.GetAsync(string.Concat(controller, $"/{RecipientAccount.ID}")).Result;
            BankAccount Recipient = response.Content.ReadAsAsync <BankAccount>().Result;

            Owner.AccountBalance     -= VMFundTransfer.TransactionAmount;
            Recipient.AccountBalance += VMFundTransfer.TransactionAmount;

            TransferMode transferMode             = VMFundTransfer.TransferMode;
            string       transferModeChosen       = transferMode.ToString();
            decimal      transferModeChargeAmount = Convert.ToDecimal(ConfigurationManager.AppSettings[$"{transferModeChosen}"]);

            Owner.AccountBalance -= transferModeChargeAmount;

            response = GlobalVariable.WebApiClient.PutAsJsonAsync(string.Concat(controller, $"/{Owner.ID}"), Owner).Result;

            if (response.IsSuccessStatusCode == false)
            {
                ViewBag.ErrorMessage  = "Fund Transaction Fail !";
                ViewBag.ErrorMessage2 = "Please Try Again Later.";

                return(View(fundTransfer));
            }

            response = GlobalVariable.WebApiClient.PutAsJsonAsync(string.Concat(controller, $"/{Recipient.ID}"), Recipient).Result;

            if (response.IsSuccessStatusCode == false)
            {
                ViewBag.ErrorMessage  = "Fund Transaction Fail !";
                ViewBag.ErrorMessage2 = "Please Try Again Later.";

                return(View(fundTransfer));
            }

            // GlobalVariable.SendEmail(Owner.Customer.Email, "Fund Transaction", $"Hi {Owner.Customer.Fullname},<br/>You did an {transferModeChosen} Transfer of RM {VMFundTransfer.TransactionAmount} on {DateTime.Now} to {Recipient.Customer.Fullname}.<br/>For enquiry, please call 999.");
            // GlobalVariable.SendEmail(Recipient.Customer.Email, "Fund Transaction", $"Hi {Recipient.Customer.Fullname},<br/>You receive an {transferModeChosen} Transfer of RM {VMFundTransfer.TransactionAmount} on {DateTime.Now} from {Owner.Customer.Fullname}.<br/>For enquiry, please call 999.");

            BankType recipientBankType = VMFundTransfer.RecipientBank;
            string   recipientBank     = recipientBankType.ToString();

            BankTransaction OwnerBankTransaction = new BankTransaction();

            OwnerBankTransaction.BankAccountID       = Owner.ID;
            OwnerBankTransaction.TransactionDateTime = DateTime.Now;
            OwnerBankTransaction.TransactionAmount   = VMFundTransfer.TransactionAmount;
            OwnerBankTransaction.TransferMode        = VMFundTransfer.TransferMode;
            OwnerBankTransaction.Remarks             = $"Transfer to {Recipient.Customer.Fullname} {recipientBankType}({Recipient.AccountNo}).";

            BankType ownerBankType = VMFundTransfer.RecipientBank;
            string   ownerBank     = ownerBankType.ToString();

            BankTransaction RecipientBankTransaction = new BankTransaction();

            RecipientBankTransaction.BankAccountID       = Recipient.ID;
            RecipientBankTransaction.TransactionDateTime = DateTime.Now;
            RecipientBankTransaction.TransactionAmount   = VMFundTransfer.TransactionAmount;
            RecipientBankTransaction.TransferMode        = VMFundTransfer.TransferMode;
            RecipientBankTransaction.Remarks             = $"Receive from {Owner.Customer.Fullname} {ownerBank}({Owner.AccountNo}).";

            controller = "BankTransactions";

            response = GlobalVariable.WebApiClient.PostAsJsonAsync(controller, OwnerBankTransaction).Result;
            response = GlobalVariable.WebApiClient.PostAsJsonAsync(controller, RecipientBankTransaction).Result;



            ViewBag.SuccessMessage = "Fund Transaction Successful !";

            return(View(fundTransfer));
        }