/*PayBillUpdatePost * This method actually triggered when the user submit the changes they have made to the schdulked job * Method will modify the database and also modify the active billpay job in the schduler */ public ATMPayBillsSchedule_ViewModel billUpdatePost(int sessionID, ATMPayBillsSchedule_ViewModel models, string id) { int billID = 0; if (id != null) { billID = int.Parse(id); } //Create a billPayObject instance with newly updated properties //and send it to repositry to handle the update to DB. BillPay UpdatedBillPayObject = new BillPay(); DateTime ScheduleDateFormat = DateTime.ParseExact(models.ScheduleDate, "dd/MM/yyyy", CultureInfo.InvariantCulture); UpdatedBillPayObject.BillPayID = billID; UpdatedBillPayObject.AccountNumber = models.AccountNumber; UpdatedBillPayObject.PayeeID = models.PayeeID; UpdatedBillPayObject.Amount = models.Amount; UpdatedBillPayObject.ScheduleDate = ScheduleDateFormat; UpdatedBillPayObject.Period = models.Period; UpdatedBillPayObject.ModifyDate = System.DateTime.Now; Repo.UpdateExistingBillPayRecord(UpdatedBillPayObject); //Tell the schduler to remove the job //and now manually create a new job with the newly updated information Billpay BillPayBusinessObj = new Billpay(); BillPayBusinessObj.ModifyJob(UpdatedBillPayObject); //######### Repopulating the viewmodel Below #### var customerQuery = Repo.GetCustomerSingle(sessionID); var AccountListQuery = Repo.GetCustomerAccountQueryable(sessionID); var allPayeeQuery = Repo.GetAllPayeeQueryable(); IEnumerable <SelectListItem> accounts = AccountListQuery.OrderBy(a => a.AccountNumber).ToList().Select(a => new SelectListItem { Value = Convert.ToString(a.AccountNumber), Text = (a.AccountType.Equals("S")) ? "Savings - " + a.AccountNumber.ToString() + " - $" + a.Balance : "Checkings - " + a.AccountNumber.ToString() + " - $" + a.Balance }); IEnumerable <SelectListItem> allPayee = allPayeeQuery.OrderBy(p => p.PayeeID).ToList().Select(p => new SelectListItem { Value = Convert.ToString(p.PayeeID), Text = (p.PayeeID + " - " + p.PayeeName) }); models.CustomerName = customerQuery.CustomerName; models.accountList = accounts; models.AllPayeeList = allPayee; return(models); }
/* PayBillUpdateGet * THis method is triggered when the user clicks 'Edit' inside the grid of * Scheduled billpay job aligned with the associated job they wish to modify * * This method will generate the viewmodel to displays the view where the * user would like to update the scheduled job */ public ATMPayBillsSchedule_ViewModel billUpdateGet(int sessionID, string id) { int billID = 0; if (id != null) { billID = int.Parse(id); } var customerQuery = Repo.GetCustomerSingle(sessionID); var accountQuery = Repo.GetCustomerAccountQueryable(sessionID); var allPayeeQuery = Repo.GetAllPayeeQueryable(); var billPayIDQuery = Repo.GetBillPaySingle(billID); IEnumerable <SelectListItem> accounts = accountQuery.OrderBy(a => a.AccountNumber).ToList().Select(a => new SelectListItem { Value = Convert.ToString(a.AccountNumber), Text = (a.AccountType.Equals("S")) ? "Savings - " + a.AccountNumber.ToString() + " - $" + a.Balance : "Checkings - " + a.AccountNumber.ToString() + " - $" + a.Balance }); IEnumerable <SelectListItem> allPayee = allPayeeQuery.OrderBy(p => p.PayeeID).ToList().Select(p => new SelectListItem { Value = Convert.ToString(p.PayeeID), Text = (p.PayeeID + " - " + p.PayeeName) }); var newModel = new ATMPayBillsSchedule_ViewModel() { CustomerName = customerQuery.CustomerName, accountList = accounts, AllPayeeList = allPayee, AccountNumber = billPayIDQuery.AccountNumber, PayeeID = billPayIDQuery.PayeeID, Amount = billPayIDQuery.Amount, ScheduleDate = billPayIDQuery.ScheduleDate.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture), Period = billPayIDQuery.Period, }; return(newModel); }
// This handles the view when a user chooses to modify the scheduled job when via the grid public ActionResult BillScheduleUpdate(ATMPayBillsSchedule_ViewModel models, string id) { int sessionUserID = WebSecurity.GetUserId(User.Identity.Name); Bank bank = new Bank(); HttpContext.Session["accountNumber"] = models.AccountNumber; if (ModelState.IsValid) { if (id == null) { return(View(bank.billUpdatePost(sessionUserID, models, null))); } else { models.message = "Schedule Bill Had Been Updated"; return(View(bank.billUpdatePost(sessionUserID, models, id))); } } else { return(BillScheduleUpdate(id)); } }