Esempio n. 1
0
        // GET: /<controller>/
        public IActionResult Index()
        {
            DateTime startOfWeek         = DateTime.Today.AddDays(-1 * ((int)(DateTime.Today.DayOfWeek) - 1));
            DateTime endOfWeek           = startOfWeek.AddDays(7);
            var      timeSlots           = _context.Time.ToList();
            var      currentWeekSchedule = new List <Schedule>();

            var isAuthorized = HttpContext.User != null && HttpContext.User.Identity.IsAuthenticated;
            var user         = new User();

            if (isAuthorized)
            {
                var telegramId = HttpContext.User.FindFirst(ClaimTypes.NameIdentifier).Value;
                user = _context.User.Single(x => x.TelegramId == Convert.ToInt32(telegramId));
                var subjectList = _context.UserSubject.Where(x => x.TelegramId == Convert.ToInt32(telegramId)).Select(x => x.IdSubject);

                ViewBag.GroupNumber = -1;
                currentWeekSchedule = _context.Schedule.Include("IdSubjectNavigation")
                                      .Include("IdTimeNavigation").Where(x => x.Date >= startOfWeek.Ticks && x.Date <= endOfWeek.Ticks && subjectList.Contains(x.IdSubject)).ToList();
            }
            else
            {
                ViewBag.GroupNumber = 4;
                currentWeekSchedule =
                    _context.Schedule.Include("IdSubjectNavigation")
                    .Include("IdTimeNavigation")
                    .Where(
                        subjects =>
                        subjects.Date >= startOfWeek.Ticks && subjects.Date <= endOfWeek.Ticks &&
                        subjects.IdSubjectNavigation.IdGroupNavigation.IdGroup == 4)
                    .ToList();
                user = null;
            }

            var studyGroup = _context.StudyGroup.ToList();

            //if (isAuthorized)
            //{
            //    studyGroup.Insert(0, _myGroup);
            //}
            studyGroup.Insert(0, _myGroup);

            var scheduleGridModel = new ScheduleGridModel
            {
                User        = user,
                TimeSlots   = timeSlots,
                Schedule    = currentWeekSchedule,
                StartOfWeek = startOfWeek,
                StudyGroups = studyGroup
            };

            return(View(scheduleGridModel));
        }
Esempio n. 2
0
        public IActionResult ShowSchedule(long start, int groupId)
        {
            var startOfWeek = new DateTime(1970, 1, 1, 0, 0, 0, 0).AddMilliseconds(start).Date.AddDays(1);

            ViewBag.GroupNumber = groupId;
            var scheduleGridModel = new ScheduleGridModel();
            var endOfWeek         = startOfWeek.AddDays(7);
            var timeSlots         = _context.Time.ToList();
            var isAuthorized      = HttpContext.User != null && HttpContext.User.Identity.IsAuthenticated;

            var studyGroup = _context.StudyGroup.ToList();

            //if (isAuthorized)
            //{
            //    studyGroup.Insert(0, _myGroup);
            //}
            studyGroup.Insert(0, _myGroup);

            if (groupId > 0)
            {
                //заглушка!!!
                groupId = groupId % 2 == 0 ? 4 : 1;
                //

                var currentWeekSchedule =
                    _context.Schedule.Include("IdSubjectNavigation")
                    .Include("IdTimeNavigation")
                    .Where(
                        subjects =>
                        subjects.Date >= startOfWeek.Ticks && subjects.Date <= endOfWeek.Ticks &&
                        subjects.IdSubjectNavigation.IdGroupNavigation.IdGroup == groupId)
                    .ToList();

                scheduleGridModel = new ScheduleGridModel
                {
                    TimeSlots   = timeSlots,
                    Schedule    = currentWeekSchedule,
                    StartOfWeek = startOfWeek,
                    StudyGroups = studyGroup
                };
            }
            else if (groupId == -1)
            {
                IList <Schedule> currentWeekSchedule = new List <Schedule>();
                if (isAuthorized)
                {
                    var telegramId  = HttpContext.User.FindFirst(ClaimTypes.NameIdentifier).Value;
                    var subjectList = _context.UserSubject.Where(x => x.TelegramId == Convert.ToInt32(telegramId)).Select(x => x.IdSubject);

                    currentWeekSchedule = _context.Schedule.Where(x => x.Date >= startOfWeek.Ticks && x.Date <= endOfWeek.Ticks && subjectList.Contains(x.IdSubject)).Include("IdSubjectNavigation")
                                          .Include("IdTimeNavigation").ToList();
                    //var currentWeekSchedule = _context.Schedule.Where(x => x.Date >= startOfWeek.Ticks && x.Date <= endOfWeek.Ticks).Join(subjectList, subject => subject.IdSubject, id => id, (up, id) => up).Include("IdSubjectNavigation")
                    //        .Include("IdTimeNavigation");
                }


                scheduleGridModel = new ScheduleGridModel
                {
                    TimeSlots   = timeSlots,
                    Schedule    = currentWeekSchedule,
                    StartOfWeek = startOfWeek,
                    StudyGroups = studyGroup
                };
            }

            return(PartialView("_ScheduleGrid", scheduleGridModel));
        }