[HttpGet("Home/leave/{id}")] ///////////////////// leave an event public IActionResult leave(int id) { string Email = HttpContext.Session.GetString("Email"); User logUser = _context.users.SingleOrDefault(usr => usr.Email == Email); Intrsts ints = _context.intrsts.FirstOrDefault(i => i.UserId == logUser.UserId); Activities act = _context.activities.FirstOrDefault(a => a.ActivitiesId == id); act.NumOfPrts--; _context.Remove(ints); _context.SaveChanges(); if (act.NumOfPrts < 0) { act.NumOfPrts = 0; } return(RedirectToAction("Dashboard")); }
[HttpGet("Home/join/{id}")] ////////////////// joining Event public IActionResult join(int id) { string Email = HttpContext.Session.GetString("Email"); User logUser = _context.users.SingleOrDefault(usr => usr.Email == Email); Activities act = _context.activities.FirstOrDefault(a => a.ActivitiesId == id); List <Intrsts> userEvents = _context.intrsts.Include(i => i.User).Include(i => i.Activities).Where(usr => usr.UserId == logUser.UserId).ToList(); // DateTime dt = DateTime.Parse(i.ToString()); // Date.AddTicks(i.Time.TimeOfDay.Ticks) >=DateTime.Now DateTime startTimeEventWantToJoin = act.Date.AddTicks(act.Time.TimeOfDay.Ticks); int eventTime = 0; if (act.durType == "Minutes") { eventTime = act.Duration; } else if (act.durType == "Hours") { eventTime = act.Duration * 60; } else if (act.durType == "Days") { eventTime = (act.Duration * 60) * 24; } DateTime endTimeEventWantToJoin = startTimeEventWantToJoin.AddMinutes(eventTime); foreach (var evnt in userEvents) { DateTime yourEventStartTime = evnt.Activities.Date.AddTicks(evnt.Activities.Time.TimeOfDay.Ticks); int yourEventTime = 0; if (act.durType == "Minutes") { yourEventTime = act.Duration; } else if (act.durType == "Hours") { yourEventTime = act.Duration * 60; } else if (act.durType == "Days") { yourEventTime = (act.Duration * 60) * 24; } DateTime yourEventEndTimeEvent = yourEventStartTime.AddMinutes(eventTime); if (startTimeEventWantToJoin > yourEventStartTime && startTimeEventWantToJoin < yourEventEndTimeEvent) { ViewBag.err = "Can't join this Event check your schedule if booked or time is in the past"; List <Activities> allActs = _context.activities.Include(a => a.Intrsts).OrderByDescending(a => a.Date).ToList(); List <Activities> noPast = new List <Activities>(); foreach (var i in allActs) { if (i.Date.AddTicks(i.Time.TimeOfDay.Ticks) >= DateTime.Now) { noPast.Add(i); } } ViewBag.allActs = noPast.OrderByDescending(a => a.Date.AddTicks(a.Time.TimeOfDay.Ticks)); ViewBag.user = logUser; // return RedirectToAction("Dashboard"); return(View("Dashboard")); } else if (endTimeEventWantToJoin > yourEventStartTime && startTimeEventWantToJoin < yourEventEndTimeEvent) { ViewBag.err = "Can't join this Event check your schedule if booked or time is in the past"; List <Activities> allActs = _context.activities.Include(a => a.Intrsts).OrderByDescending(a => a.Date).ToList(); List <Activities> noPast = new List <Activities>(); foreach (var i in allActs) { if (i.Date.AddTicks(i.Time.TimeOfDay.Ticks) >= DateTime.Now) { noPast.Add(i); } } ViewBag.allActs = noPast.OrderByDescending(a => a.Date.AddTicks(a.Time.TimeOfDay.Ticks)); ViewBag.user = logUser; // return RedirectToAction("Dashboard"); return(View("Dashboard")); } } Intrsts ints = new Intrsts() { User = logUser, Activities = act }; act.NumOfPrts++; logUser.Intrsts.Add(ints); act.Intrsts.Add(ints); _context.Add(ints); _context.SaveChanges(); return(RedirectToAction("Dashboard")); }