// 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)); }
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)); }