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"));
            }
        }