Exemplo n.º 1
0
        public IActionResult RidershipLeave(int userId, int carpoolId)
        {
            if (HttpContext.Session.GetInt32("LoggedInUserId") is null)
            {
                return(RedirectToAction("Index", "LoginReg"));
            }

            User logged_in_user = dbContext.Users.Where(u => u.Id == HttpContext.Session.GetInt32("LoggedInUserId"))
                                  .Include(u => u.carpools)
                                  .Include(u => u.riderships)
                                  .ThenInclude(r => r.carpool)
                                  .FirstOrDefault();

            if (HttpContext.Session.GetInt32("LoggedInUserId") == userId)
            {
                Ridership ridershipToRemove = dbContext.Riderships.Where(r => (r.CarpoolId == carpoolId) && (r.UserId == userId))
                                              .FirstOrDefault();
                dbContext.Remove(ridershipToRemove);
                dbContext.SaveChanges();


                ViewBag.logged_in_user = logged_in_user;

                return(RedirectToAction("Dashboard", "Carpool"));
            }

            ViewBag.logged_in_user = logged_in_user;
            ModelState.AddModelError("Error", "Cannot leave ridership for another user");
            return(View("Dashboard", "Carpool"));
        }
Exemplo n.º 2
0
        public IActionResult RidershipKick(int userId, int carpoolId)
        {
            if (HttpContext.Session.GetInt32("LoggedInUserId") is null)
            {
                return(RedirectToAction("Index", "LoginReg"));
            }

            User logged_in_user = dbContext.Users.Where(u => u.Id == HttpContext.Session.GetInt32("LoggedInUserId"))
                                  .Include(u => u.carpools)
                                  .Include(u => u.riderships)
                                  .ThenInclude(r => r.carpool)
                                  .FirstOrDefault();

            Carpool carpool = dbContext.Carpools.Where(c => c.Id == carpoolId)
                              .Include(c => c.user)
                              .FirstOrDefault();

            if (HttpContext.Session.GetInt32("LoggedInUserId") == carpool.user.Id)
            {
                Ridership ridershipToRemove = dbContext.Riderships.Where(r => (r.CarpoolId == carpoolId) && (r.UserId == userId))
                                              .FirstOrDefault();
                dbContext.Remove(ridershipToRemove);
                dbContext.SaveChanges();


                ViewBag.logged_in_user = logged_in_user;

                return(Redirect($"/carpool/edit/{carpoolId}"));
            }

            ViewBag.logged_in_user = logged_in_user;
            ModelState.AddModelError("Error", "Insufficient privileges to kick user");
            return(View("Dashboard", "Carpool"));
        }
Exemplo n.º 3
0
        public IActionResult RidershipJoin(int userId, int carpoolId)
        {
            if (HttpContext.Session.GetInt32("LoggedInUserId") is null)
            {
                return(RedirectToAction("Index", "LoginReg"));
            }

            if (HttpContext.Session.GetInt32("LoggedInUserId") == userId)
            {
                Ridership newRidership = new Ridership()
                {
                    UserId    = userId,
                    CarpoolId = carpoolId
                };

                dbContext.Add(newRidership);
                dbContext.SaveChanges();
                return(RedirectToAction("CarpoolDefault", "Carpool", new { id = carpoolId }));
            }
            User logged_in_user = dbContext.Users.Where(u => u.Id == HttpContext.Session.GetInt32("LoggedInUserId"))
                                  .Include(u => u.carpools)
                                  .Include(u => u.riderships)
                                  .ThenInclude(r => r.carpool)
                                  .FirstOrDefault();

            ViewBag.logged_in_user = logged_in_user;
            ModelState.AddModelError("Error", "Cannot join ridership for another user");
            return(View("Dashboard", "Carpool"));
        }