// GET: Schedules public IActionResult Index() { var MemberIdString = HttpContext.Session.GetString("MemberId"); var RoleIdString = HttpContext.Session.GetString("RoleId"); Int32.TryParse(MemberIdString, out int MemberId); Int32.TryParse(RoleIdString, out int RoleId); //Only admins can view all scheduled events. Admin have a role id of 1 if (MemberIdString != null && MemberId == 1) { var allEvents = _context.Event .Include(member => member.Member) .ToList(); var eVM2 = new EventSchduleViewModel { Events = allEvents.ToList() }; return(View(eVM2)); } //Coaches and members can see all their events and schedules if (MemberIdString != null) { // Retrieve all the coache's events var coachesEvents = _context.Event .Include(member => member.Member) .Where(e => e.MemberId == MemberId) .ToList(); // Retrieve all the member's event var memberSchedule = _context.Schedule .Where(e => e.MemberId == MemberId) .Include(events => events.Event) .Include(events => events.Event.Member) .ToList(); // Add retrieve data into the viewmodel var eVM2 = new EventSchduleViewModel { Events = coachesEvents.ToList(), MemberSchedule = memberSchedule.ToList() }; return(View(eVM2)); } return(RedirectToAction("Login", "Home")); }
// GET: Schedules/Details/5 public async Task <IActionResult> Details(int?id) { if (id == null) { return(NotFound()); } var MemberId = HttpContext.Session.GetString("MemberId"); var RoleIdString = HttpContext.Session.GetString("RoleId"); Int32.TryParse(RoleIdString, out int RoleId); // Coaches and members can see details about thier events. Coaches see all members enrolled in their event if (MemberId != null && RoleId == 1 || RoleId == 2) { var schedule = _context.Schedule.FirstOrDefault(s => s.ScheduleId == id); // Retrieve the selected event var selectedEvent = _context.Event.FirstOrDefault(e => e.EventId == id); // Retrieve all members enrolled in selected event var membersInEvent = from m in _context.Member join s in _context.Schedule on m.MemberId equals s.MemberId join e in _context.Event on s.EventId equals e.EventId where e.EventId == selectedEvent.EventId select m; // Add retrieve data into the viewmodel var eVM2 = new EventSchduleViewModel { Members = membersInEvent.ToList() }; if (schedule == null) { return(View(eVM2)); } return(View(eVM2)); } return(RedirectToAction("Login", "Home")); }