private ActionResult ExecuteAction(RemittanceCashPickup model, string approvalStatus) { ValidationStateDictionary states = new ValidationStateDictionary(); var models = _cashPickupService.RetrieveReference(model.ReferenceNumber); var dbApprovalStatus = Constants.ApprovalStatus.Pending; //the user that put a record in pending mode will always be stored as initiated by - meaning the db will be updated. var permitEdit = Access.CanEdit(Constants.Modules.RemitlyPayout, model.InitiatedBy, dbApprovalStatus, model.IsDeleted); if (permitEdit) { model.ApprovedStatus = approvalStatus; var updated = _cashPickupService.EditRemittance(model.ReferenceNumber); if (!states.IsValid) { model.UserRole = new Role() { RoleId = model.RoleId }; ModelState.AddModelErrors(states); var errorList = ValidationHelper.BuildModelErrorList(states); SetAuditInfo(Helper.StripHtml(errorList, true), string.Empty); return(View(model)); } else { if (updated == null) { Warning(Constants.Messages.ConcurrencyError, true); } else { Success(Constants.Messages.SaveSuccessful, true); } return(RedirectToAction("Index")); } } else { Warning(Constants.Messages.EditNotPermittedError, true); return(RedirectToAction("Index")); } }
public ActionResult EditRemitlyCashPayout(RemittanceCashPickup model) { //the form to to process thre retrieved reference number using (var client = new HttpClient()) { string url = ConfigurationManager.AppSettings["RemitlyBaseURL"]; var content = new MultipartFormDataContent(); client.BaseAddress = new Uri(url); var responseTask = client.PostAsync($"/IMTOAPI.Project/Remitly/UpdateTransfer/", content); responseTask.Wait(); var result = responseTask.Result; if (result.IsSuccessStatusCode) { TempData["SuccessMessage"] = $"Cash Pickup was successfully updated."; return(RedirectToAction("Index", new { CashPickupIdId = model.Id })); } if ((int)result.StatusCode == 422) { ModelState.AddModelError("", "CashPickup entry Already Exists!"); } else { ModelState.AddModelError("", "Some kind of error. CashPickup not updated!"); } } var cashPicks = _cashPickupService.EditRemittance(model.ReferenceNumber); return(View(cashPicks)); //here teller accept and record customer identity. //system validate and send for approval //return View(); }
public ActionResult ApproveRemitlyCashPayout(RemittanceCashPickup model) { return(ExecuteAction(model, Constants.ApprovalStatus.Approved)); }
public ActionResult RejectForCorrectionRemitlyCashPayout(RemittanceCashPickup model) { return(ExecuteAction(model, Constants.ApprovalStatus.RejectedForCorrection)); }