public async Task <IActionResult> Address(CertificateAddressViewModel vm) { var certData = await GetCertificateData(vm.Id); if (ModelState.IsValid && vm.AddressHasChanged(certData)) { // when address has been changed the complete journey is required SessionService.SetRedirectToCheck(false); } if (vm.SendTo == CertificateSendTo.Apprentice) { return(await SaveViewModel(vm, returnToIfModelNotValid : "~/Views/Certificate/Address.cshtml", nextAction : RedirectToAction("ConfirmAddress", "CertificateAddress"), action : CertificateActions.Address)); } else { return(await SaveViewModel(vm, returnToIfModelNotValid : "~/Views/Certificate/Address.cshtml", nextAction : RedirectToAction("Recipient", "CertificateAddress"), action : CertificateActions.Address)); } }