public IActionResult Login(LoginViewModel login) { if (ModelState.IsValid) { User user = _context.Users.FirstOrDefault(u => u.Email == login.Email); if (user != null) { if (Crypto.VerifyHashedPassword(user.Password, login.Password)) { user.Token = Guid.NewGuid().ToString(); _context.SaveChanges(); Response.Cookies.Append("token", user.Token, new Microsoft.AspNetCore.Http.CookieOptions { Expires = DateTime.Now.AddDays(5), HttpOnly = true }); return(RedirectToAction("index", "places")); } } ModelState.AddModelError("Password", "Email or password is incorrect"); } return(View("~/Views/Login/index.cshtml")); }
public IActionResult Register(RegisterViewModel Register) { if (ModelState.IsValid) { if (!_context.Users.Any(u => u.Email == Register.Email)) { User user = new User { Email = Register.Email, Fullname = Register.Fullname, Password = Crypto.HashPassword(Register.Password), Token = Guid.NewGuid().ToString() }; _context.Users.Add(user); _context.SaveChanges(); Response.Cookies.Append("token", user.Token, new Microsoft.AspNetCore.Http.CookieOptions { Expires = DateTime.Now.AddDays(5), HttpOnly = true }); return(RedirectToAction("index", "Places")); } ModelState.AddModelError("Email", "This Email is already registered"); } return(View("~/Views/Places/Index.cshtml")); }
public IActionResult MakeReservation(Reservation reservationModel) { if (!ModelState.IsValid) { return(RedirectToAction("details", "Places", new { id = reservationModel.PlaceId }, "reservations")); } Reservation reservation = new Reservation { PlaceId = reservationModel.PlaceId, Fullname = reservationModel.Fullname, Phone = reservationModel.Phone, numOfPersons = reservationModel.numOfPersons, Date = reservationModel.Date, Time = reservationModel.Time }; _context.Reservations.Add(reservation); _context.SaveChanges(); return(RedirectToAction("Success", "Places")); }