// // Private // private async Task <IActionResult> ProcessPost(Guid id, AmendDirectDebitVm amendDirectDebitVmPostedBack) { if (!ModelState.IsValid) { if (amendDirectDebitVmPostedBack.SelectedPlanSetupOption == PlanSetupOptions.AverageSetupValue || amendDirectDebitVmPostedBack.SelectedPlanSetupOption == PlanSetupOptions.DisposableIncome) { if (amendDirectDebitVmPostedBack.DirectDebitAmount > amendDirectDebitVmPostedBack.OutstandingBalance) { ModelState.Clear(); var initialVm = DeserialiseModel <AmendDirectDebitVm>(amendDirectDebitVmPostedBack.InitialState); amendDirectDebitVmPostedBack.DirectDebitAmount = initialVm.DirectDebitAmount; ModelState.AddModelError(nameof(AmendDirectDebitVm.SelectedPlanSetupOption), $"{ValidationMessages.AmountGreaterThenAllowed}{amendDirectDebitVmPostedBack.OutstandingBalance}"); } } Debug.Assert(amendDirectDebitVmPostedBack.InitialState != null, "Initial state must be stashed to re-create view on round-trip"); return(View(amendDirectDebitVmPostedBack)); } _gtmService.RaiseAmendDirectDebitEvent_DetailsSelected(amendDirectDebitVmPostedBack, LoggedInUserId); ApplicationSessionState.LogSetUpPlanResult = true; var totalMonths = _amendDirectDebitPlanService.CalculateTermInMonths( amendDirectDebitVmPostedBack.DerivedBalance, amendDirectDebitVmPostedBack.DirectDebitAmount.Value, amendDirectDebitVmPostedBack.PlanFrequency); var years = totalMonths / 12; var months = totalMonths % 12; var amendDirectDebitConfirmVm = new AmendDirectDebitConfirmVm { // Stash filled in form, as other fields will not be in inputs on confirm page FilledInState = SerialiseModel(amendDirectDebitVmPostedBack), LowellReference = amendDirectDebitVmPostedBack.LowellReference, ClientName = amendDirectDebitVmPostedBack.ClientName, OutstandingBalance = amendDirectDebitVmPostedBack.OutstandingBalance, RegularAccountPaymentAmount = amendDirectDebitVmPostedBack.DirectDebitAmount.Value, PlanFrequency = amendDirectDebitVmPostedBack.PlanFrequency, PlanStartDate = amendDirectDebitVmPostedBack.PlanStartDate, TermYears = years, TermMonths = months }; return(View("Confirm", amendDirectDebitConfirmVm)); }