using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Mvc; using Model; using Web.ViewModel.AccountVM; namespace Web.Controllers { public class AccountController : Controller { private readonly SignInManager _signInManager; public AccountController(SignInManager signInManager) { _signInManager = signInManager; } public IActionResult Index() { return View(); } [HttpGet] public IActionResult Login(string returnUrl = null) { ViewData["ReturnUrl"] = returnUrl; return View(); } [HttpPost] [ValidateAntiForgeryToken] public async Task Login(LoginViewModel model, string returnUrl = null) { ViewData["ReturnUrl"] = returnUrl; if (ModelState.IsValid) { var result = await _signInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, lockoutOnFailure: false); if (result.Succeeded) { if (!string.IsNullOrEmpty(returnUrl) && Url.IsLocalUrl(returnUrl)) { return Redirect(returnUrl); } else { TempData["Success"] = "Loing succesfully"; return RedirectToAction("Index", "Home"); // Redirect to the frontend homepage } } ModelState.AddModelError(string.Empty, "Invalid login attempt."); } // If we got this far, something failed, redisplay form return View(model); } } }