public async Task <IActionResult> Login(Models.ViewModels.LoginModel loginModel)
        {
            if (ModelState.IsValid)
            {
                IdentityUser user = await userManager.FindByNameAsync(loginModel.Name);

                if (user != null)
                {
                    await signInManager.SignOutAsync();

                    if ((await signInManager.PasswordSignInAsync(user, loginModel.Password, false, false)).Succeeded)
                    {
                        return(Redirect(loginModel?.ReturnUrl ?? "/Admin/Index"));
                    }
                }
            }
            ModelState.AddModelError("", "Invalid name or password");
            return(View(loginModel));
        }
        public async Task <IActionResult> Login(Models.ViewModels.LoginModel loginModel)
        {
            if (ModelState.IsValid)
            {
                //get current user by email
                AppUser currentUser = await _userManager.FindByEmailAsync(loginModel.Email);

                Microsoft.AspNetCore.Identity.SignInResult signInResult = await _signInManager.PasswordSignInAsync(currentUser, loginModel.Password, loginModel.RememberMe, true);

                if (signInResult.Succeeded)
                {
                    var user = User;
                    AdminRegisterModel adminRegisterModel = new AdminRegisterModel();
                    RegisterModel_a    registerModel_A    = new RegisterModel_a();
                    RegisterModel_s    registerModel_S    = new RegisterModel_s();
                    if (currentUser.Email == adminRegisterModel.Email)
                    {
                        return(RedirectToAction("AdminIndex", "AdminHome", new { area = "Admin" }));
                    }
                    else if (currentUser.Email == registerModel_A.Email || currentUser.Email == registerModel_S.Email)
                    {
                        return(RedirectToAction("Index", "Home"));
                    }
                    //go to user defined role panel
                }
                else
                if (signInResult.IsLockedOut)
                {
                    ModelState.AddModelError("", "This use is already locked out!!");
                }
                else
                if (signInResult.IsNotAllowed)
                {
                    ModelState.AddModelError("", "Your have no access");
                }
            }
            return(RedirectToAction(nameof(Login)));
        }
        public async System.Threading.Tasks.Task <Microsoft.AspNetCore.Mvc.IActionResult> Login(Models.ViewModels.LoginModel accountViewModel)
        {
            if (ModelState.IsValid)
            {
                Microsoft.AspNetCore.Identity.IdentityUser user = await userManager.FindByNameAsync(accountViewModel.Name);

                if (user != null)
                {
                    await signInManager.SignOutAsync();

                    if ((await signInManager.PasswordSignInAsync(user, accountViewModel.Password, false, false)).Succeeded)
                    {
                        return(Redirect(accountViewModel?.ReturnUrl ?? "/Admin/Index"));
                    }
                }
            }
            ModelState.AddModelError("", "Invalid name or password");
            return(View(accountViewModel));
        }