public IActionResult Login(VMW Submission) { if (ModelState.IsValid) { User userFromDb = dbContext.Users.FirstOrDefault(u => u.Email == Submission.loginUser.Email); if (userFromDb == null) { ModelState.AddModelError("loginUser.Email", "Invalide Email/Password"); return(View("Index")); } var hasher = new PasswordHasher <LoginUser>(); var result = hasher.VerifyHashedPassword(Submission.loginUser, userFromDb.Password, Submission.loginUser.Password); if (result == 0) { ModelState.AddModelError("loginUser.Email", "Invalide Email/Password"); return(View("Index")); } HttpContext.Session.SetInt32("UserId", userFromDb.UserId); return(RedirectToAction("bright_idea")); } else { ModelState.AddModelError("loginUser.Email", "Invalide Email/Password"); return(View("Index")); } }
public IActionResult ViewUser(int userid) { int?LocalUserId = HttpContext.Session.GetInt32("UserId"); if (LocalUserId == null) { return(RedirectToAction("Index")); } User userLoggedIn = dbContext.Users.Include(u => u.CreatedPosts).Include(u => u.Likes).FirstOrDefault(u => u.UserId == userid); VMW viewModel = new VMW(); viewModel.user = userLoggedIn; return(View(viewModel)); }
public IActionResult bright_idea() { int?LocalUserId = HttpContext.Session.GetInt32("UserId"); if (LocalUserId == null) { return(RedirectToAction("Index")); } User userLoggedIn = dbContext.Users.FirstOrDefault(u => u.UserId == LocalUserId); VMW viewModel = new VMW(); viewModel.user = userLoggedIn; viewModel.posts = dbContext.Posts.Include(p => p.Likes).ThenInclude(l => l.Liker).ToList(); return(View(viewModel)); }
public IActionResult ViewPost(int postid) { int?LocalUserId = HttpContext.Session.GetInt32("UserId"); if (LocalUserId == null) { return(RedirectToAction("Index")); } User userLoggedIn = dbContext.Users.FirstOrDefault(u => u.UserId == LocalUserId); List <Like> theseLikes = dbContext.Likes.Include(l => l.Liker).Where(l => l.PostId == postid).ToList(); Post thisPost = dbContext.Posts.FirstOrDefault(p => p.PostId == postid); VMW viewModel = new VMW(); viewModel.newPost = thisPost; viewModel.user = userLoggedIn; viewModel.likes = theseLikes; return(View(viewModel)); }
public IActionResult NewPost(VMW Submission) { if (ModelState.IsValid) { Post newPost = Submission.newPost; int? LocalUserId = HttpContext.Session.GetInt32("UserId"); if (LocalUserId == null) { return(RedirectToAction("Index")); } User userLoggedIn = dbContext.Users.FirstOrDefault(u => u.UserId == LocalUserId); newPost.UserId = userLoggedIn.UserId; dbContext.Add(newPost); dbContext.SaveChanges(); return(RedirectToAction("bright_idea")); } else { return(RedirectToAction("bright_idea")); } }
public IActionResult Create(VMW Submission) { if (ModelState.IsValid) { if (dbContext.Users.Any(u => u.Email == Submission.user.Email)) { // Manually add a ModelState error to the Email field ModelState.AddModelError("user.Email", "Email already in use!"); return(View("Index")); } PasswordHasher <User> Hasher = new PasswordHasher <User>(); Submission.user.Password = Hasher.HashPassword(Submission.user, Submission.user.Password); dbContext.Add(Submission.user); dbContext.SaveChanges(); HttpContext.Session.SetInt32("UserId", Submission.user.UserId); return(RedirectToAction("bright_idea")); } else { return(View("Index")); } }