// 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"));
        }
예제 #2
0
        // 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"));
        }