public async Task <IActionResult> CompleteRegistration(RegisterVm model, string returnUrl = "/MyAccounts") { try { if (!ModelState.IsValid) { _gtmService.RaiseRegistrationEvent_ActivationEmailSent(model, null, "Invalid registration details"); return(View(model)); } var result = await _registerService.CreateAccount(new RegisterAccount { Password = model.Password, EmailAddress = model.EmailAddress, ExpiresAt = null, LowellReferenceNumber = model.LowellReference }); if (result.IsSuccess) { _gtmService.RaiseRegistrationEvent_ActivationEmailSent(model, result.SubjectId.ToString(), null); await _webActivityService.LogRegistrationRequest(model.LowellReference, string.Empty); return(View("SendRegistrationEmail", model)); } else { Logger.LogError($"Complete Registration Error: {JsonConvert.SerializeObject(result)}"); if (result.ErrorCode == 1000) { AddErrors(ValidationMessages.UserNameAlreadyExists); model.NotificationMessage = ValidationMessages.UserNameAlreadyExists; _gtmService.RaiseRegistrationEvent_ActivationEmailSent(model, null, "Username already exists"); } else { AddErrors(ValidationMessages.ConfirmRegistrationFailed); model.NotificationMessage = ValidationMessages.ConfirmRegistrationFailed; _gtmService.RaiseRegistrationEvent_ActivationEmailSent(model, null, "service unavailable"); } return(View(model)); } } catch (Exception ex) { Logger.LogError(ex, $"Complete Registration Error: {ex.Message}"); _gtmService.RaiseRegistrationEvent_ActivationEmailSent(model, string.IsNullOrEmpty(LoggedInUserId) ? null : LoggedInUserId, $"Unhandled exception: {ex.Message}"); return(View("Error")); } }