public async Task <IActionResult> Register(RegisterModel model)
        {
            if (model.CompanyName != null)
            {
                var userProfile = _userProfile.SaveUserProfile(model);
                if (ModelState.IsValid && userProfile.Status == Common.Enums.StatusEnum.Success)
                {
                    var user = new ApplicationUser {
                        UserName = model.Email, Email = model.Email, UserProfileId = userProfile.Value
                    };
                    var result = await _user.UserManager.CreateAsync(user, model.Password);

                    if (result.Succeeded)
                    {
                        var code = await _user.UserManager.GenerateEmailConfirmationTokenAsync(user);

                        var callbackUrl = Url.EmailConfirmationLink(user.Id, code, Request.Scheme);
                        await _emailSender.SendEmailConfirmationAsync(model.Email, callbackUrl);

                        _adapterService.AdapterSeed(userProfile.Value);

                        //await _user.SignInAsync(user, isPersistent: false);
                        //return RedirectToAction("Index", "Home");
                        return(RedirectToAction("CheckEmailNotification", "Account"));
                    }
                    else
                    {
                        _userProfile.DeleteUserProfile(userProfile.Value);
                    }
                }
            }
            else
            {
                var userProfile = _userProfile.SaveUserProfile(model);

                if (ModelState["Email"].ValidationState == ModelValidationState.Valid &&
                    ModelState["Password"].ValidationState == ModelValidationState.Valid &&
                    ModelState["ConfirmPassword"].ValidationState == ModelValidationState.Valid &&
                    userProfile.Status == Common.Enums.StatusEnum.Success)
                {
                    var user = new ApplicationUser {
                        UserName = model.Email, Email = model.Email, UserProfileId = userProfile.Value
                    };
                    var result = await _user.UserManager.CreateAsync(user, model.Password);

                    if (result.Succeeded)
                    {
                        var code = await _user.UserManager.GenerateEmailConfirmationTokenAsync(user);

                        var callbackUrl = Url.EmailConfirmationLink(user.Id, code, Request.Scheme);
                        await _emailSender.SendEmailConfirmationAsync(model.Email, callbackUrl);

                        _adapterService.AdapterSeed(userProfile.Value);

                        //await _user.SignInAsync(user, isPersistent: false);
                        //return RedirectToAction("Index", "Home");
                        return(RedirectToAction("CheckEmailNotification", "Account"));
                    }
                    else
                    {
                        var errorList = result.Errors.ToList();

                        ModelState.AddModelError("", errorList[0].Description);
                        _userProfile.DeleteUserProfile(userProfile.Value);
                    }
                }
                else
                {
                    ModelState.AddModelError("", "Failed to register");
                    _userProfile.DeleteUserProfile(userProfile.Value);
                }
                return(View("Register"));
            }

            ModelState.AddModelError("", "Failed to register");
            return(View(model));
        }