// GET: Agenda public async Task <IActionResult> Agenda() { var agenda = new PageModel(); agenda.Sessions = await _sessionBL.GetAllApprovedSessionViewModelsForActiveEvent(); agenda.Tracks = await _trackBL.GetAllTrackViewModelsForActiveEvent(); agenda.Timeslots = await _timeslotBL.GetAllTimeslotViewModelsForActiveEvent(); return(View(agenda)); }
public async Task <IActionResult> Index() { var pageModel = new PageModel(); pageModel.UserTypes = UserType.GetUserTypes().ToList(); pageModel.Tracks = await _trackBL.GetAllTrackViewModelsForActiveEvent(); pageModel.Tracks.Insert(0, new TrackViewModel { TrackId = 0, DisplayName = "All Tracks" }); pageModel.Timeslots = await _timeslotBL.GetAllTimeslotViewModelsForActiveEvent(); pageModel.Timeslots.Insert(0, new TimeslotViewModel { TimeslotId = 0, DisplayName = "All Timeslots" }); if (User.IsInRole("Admin")) { // Get all sessions for the active event for the admin pageModel.SelectedUserType = (int)TypesOfUsers.AllUsers; // JTL, I don't think this is actually necessary pageModel.Sessions = await _sessionBL.GetAllApprovedSessionViewModelsForActiveEvent(UserId); ViewData["Title"] = "All Sessions"; } else if (User.IsInRole("Speaker")) { pageModel.SelectedUserType = (int)TypesOfUsers.AllUsers; var user = await _userManager.GetUserAsync(User); if (user != null && user.SpeakerId.HasValue) { if (pageModel.SelectedUserType == (int)TypesOfUsers.SpecificUser) { // The user is a speaker and we have access to their speakerId, therefore // get all of the speaker's sessions for the active event. pageModel.Sessions = await _sessionBL.GetAllSessionViewModelsForSpeakerForActiveEvent( user.SpeakerId.Value, UserId); ViewData["Title"] = "Your Sessions"; } else { // The user desires to see all approved sessions for the event pageModel.Sessions = await _sessionBL.GetAllApprovedSessionViewModelsForActiveEvent(UserId); ViewData["Title"] = "Sessions"; } } else { // We can't get the speakerId, so we'll return only approved // speakers for the active event. pageModel.SelectedUserType = (int)TypesOfUsers.AllUsers; pageModel.Sessions = await _sessionBL.GetAllApprovedSessionViewModelsForActiveEvent(UserId); ViewData["Title"] = "Sessions"; } } else { // The user is an attendee, return all approved sessions for // the active event. pageModel.SelectedUserType = (int)TypesOfUsers.AllUsers; // JTL, I don't think this is actually necessary pageModel.Sessions = await _sessionBL.GetAllApprovedSessionViewModelsForActiveEvent(UserId); ViewData["Title"] = "Sessions"; } pageModel.Sessions = pageModel.Sessions.OrderBy(s => s.StartTime).ToList(); return(View(pageModel)); }