public ActionResult ExternalLoginRegistration(RegisterExternalModel model, string returnUrl)
        {
            if (_workContext.CurrentProfile.IsAnonymous == false)
            {
                _authenticationService.SignOut();
            }

            var loginInfo = HttpContext.GetOwinContext().Authentication.GetExternalLoginInfo();

            if (loginInfo == null)
            {
                return(RedirectToAction("ExternalLoginFailure"));
            }

            if (ModelState.IsValid)
            {
                var account = new Account
                {
                    Name          = model.Name,
                    Email         = model.Email.ToLower(),
                    ContactNumber = model.ContactNumber,
                    DOB           = model.ParseDateOfBirth().HasValue ? model.ParseDateOfBirth().Value.ToString("dd/MM/yyyy") : null,
                    Username      = model.Email,
                    DisplayContactNumberInDespatch = model.DisplayContactNumberInDespatch,
                    ProfileId = _workContext.CurrentProfile.Id,
                };

                var result = _accountService.ProcessRegistrationWithExternalLogin(account, loginInfo.Login.LoginProvider, loginInfo.Login.ProviderKey, sendEmailFlag: true);

                if (string.IsNullOrEmpty(result.Message))
                {
                    account.Id = result.UserId;
                    _identityExternalAuthService.ExternalSignIn(loginInfo.Email, loginInfo.Login.LoginProvider, loginInfo.Login.ProviderKey, isPersistent: true);

                    return(RedirectToRoute("Register Result", new { resultId = Convert.ToInt32(UserRegistrationType.Standard), returnUrl }));
                }
                else
                {
                    model.LoginProvider = loginInfo.Login.LoginProvider;
                    model.Email         = loginInfo.Email;
                    ModelState.AddModelError(string.Empty, result.Message);
                }
            }

            return(View(model));
        }