public async Task <IActionResult> Address(CertificateAddressViewModel vm) { var username = _contextAccessor.HttpContext.User .FindFirst("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn")?.Value; if (vm.SelectPreviousAddress) { var certificatePreviousAddress = await _certificateApiClient.GetContactPreviousAddress(username, vm.IsPrivatelyFunded); vm = vm.CopyFromCertificateAddress(certificatePreviousAddress); } if (!ModelState.IsValid) { vm = await InitialisePreviousAddresssesForViewModel(vm, username); } if (vm.SelectPreviousAddress) { return(await SaveViewModel(vm, returnToIfModelNotValid : "~/Views/Certificate/Address.cshtml", nextAction : RedirectToAction("Recipient", "CertificateRecipient"), action : CertificateActions.Address)); } else { return(await SaveViewModel(vm, returnToIfModelNotValid : "~/Views/Certificate/Address.cshtml", nextAction : RedirectToAction("AddressSummary", "CertificateAddressSummary"), action : CertificateActions.Address)); } }