//проверет можно ли назначить занятие на числитель или знаменатель public bool StudLessonsLimitReached(string day, int groupId, LessonFrequency frequency) { if (frequency == LessonFrequency.Constant) { return StudLessonsLimitReached(day, groupId); } WorkdayOfWeek dayValue = (WorkdayOfWeek)Enum.Parse(typeof(WorkdayOfWeek), day); int lessonsForDay = ScheduleItems.Count(i => i.GroupId == groupId && i.DayOfWeek == day && (i.LessonFrequency == LessonFrequency.Constant || i.LessonFrequency == frequency)); int MaxLessonsPerDayForStudents = System.Convert.ToInt32( Restrictions.Single(i => i.Name == "MaxLessonsPerDayForStudents").Value); return lessonsForDay >= MaxLessonsPerDayForStudents; }
private IEnumerable <SelectListItem> GetLessonFrequenciesSelectList(LessonFrequency selectedValue = LessonFrequency.Constant) { IEnumerable <SelectListItem> list = from value in EnumHelper.GetValues <LessonFrequency>() select new SelectListItem { //Text = value.ToString(), Text = value.ToString(), Value = value.ToString(), Selected = value.ToString() == selectedValue.ToString() }; return(list); }
//проверет можно ли назначить занятие на числитель или знаменатель public bool StudLessonsLimitReached(string day, int groupId, LessonFrequency frequency) { if (frequency == LessonFrequency.Constant) { return(StudLessonsLimitReached(day, groupId)); } WorkdayOfWeek dayValue = (WorkdayOfWeek)Enum.Parse(typeof(WorkdayOfWeek), day); int lessonsForDay = ScheduleItems.Count(i => i.GroupId == groupId && i.DayOfWeek == day && (i.LessonFrequency == LessonFrequency.Constant || i.LessonFrequency == frequency)); int MaxLessonsPerDayForStudents = System.Convert.ToInt32( Restrictions.Single(i => i.Name == "MaxLessonsPerDayForStudents").Value); return(lessonsForDay >= MaxLessonsPerDayForStudents); }
public static string GetSheduleItemKey(int semesterId, string dayOfWeek, int lessonNumber, int groupId, LessonFrequency lessonFrequency) { return(String.Format("{0}_{1}_{2}_{3}_{4}", semesterId, dayOfWeek, lessonNumber, groupId, lessonFrequency)); }
public ScheduleItem GetScheduleItem(int semesterId, string dayOfWeek, int lessonNumber, int groupId, LessonFrequency lessonFrequency) { return(this.ScheduleItems.Where(i => i.SemesterId == semesterId && i.DayOfWeek == dayOfWeek && i.LessonNumber == lessonNumber && i.GroupId == groupId && i.LessonFrequency == lessonFrequency).Single()); }
public bool CheckScheduleItem(int semesterId, string dayOfWeek, int lessonNumber, int groupId, LessonFrequency lessonFrequency) { var result = this.ScheduleItems.Where(i => i.SemesterId == semesterId && i.DayOfWeek == dayOfWeek && i.LessonNumber == lessonNumber && i.GroupId == groupId && i.LessonFrequency == lessonFrequency).ToArray(); return(result.Length == 1 ? true : false); }
public PartialViewResult _LessonForm(int semesterId, string dayOfWeek, int lessonNumber, int groupId, LessonFrequency lessonFrequency = LessonFrequency.Constant) { ApplicationDbContext context = new ApplicationDbContext(); Models.ScheduleItem scheduleItem = new ScheduleItem() { SemesterId = semesterId, DayOfWeek = dayOfWeek, LessonNumber = lessonNumber, GroupId = groupId, LessonFrequency = lessonFrequency }; scheduleItem.Group = context.Groups.Single(i => i.Id == groupId); //Отбираем значения числ/знам по загруж ScheduleViewModel vm = ScheduleRepository.GetScheduleViewModel(semesterId, scheduleItem.Group.Course); IEnumerable <SelectListItem> freqList = GetLessonFrequenciesSelectList(); Hashtable freqLimitReached = new Hashtable(); foreach (var value in EnumHelper.GetValues <LessonFrequency>()) { freqLimitReached.Add(value.ToString(), vm.StudLessonsLimitReached(dayOfWeek, groupId, value)); } freqList = freqList.Where(i => (bool)freqLimitReached[i.Value] == false); //проверка на другие занятия List <SelectListItem> freqList2 = new List <SelectListItem>(); var scheduleItemsForConcreteLessonNumber = vm.GetScheduleItems(semesterId, dayOfWeek, lessonNumber, groupId).Select(i => i.LessonFrequency); if (scheduleItemsForConcreteLessonNumber.Contains(LessonFrequency.Constant)) { freqList2.Clear(); } else if (scheduleItemsForConcreteLessonNumber.Contains(LessonFrequency.Nominator)) { freqList2.Add(freqList.SingleOrDefault(i => i.Value == LessonFrequency.Denominator.ToString())); } else if (scheduleItemsForConcreteLessonNumber.Contains(LessonFrequency.Denominator)) { freqList2.Add(freqList.SingleOrDefault(i => i.Value == LessonFrequency.Nominator.ToString())); } else { freqList2.AddRange(freqList); } freqList = freqList2; ViewBag.LessonId = GetLessonsSelectList(); ViewBag.LessonType = GetLessonTypesSelectList(); ViewBag.LessonFrequency = freqList; ViewBag.TeacherId = GetTeachersSelectList(); ViewBag.ClassroomId = GetClassroomsSelectList(context.Classrooms.Where(i => i.Capacity >= scheduleItem.Group.StudentsAmount).ToList()); return(PartialView("_LessonFormPartial", scheduleItem)); }
public ScheduleItem GetScheduleItem(int semesterId, string dayOfWeek, int lessonNumber, int groupId, LessonFrequency lessonFrequency) { return this.ScheduleItems.Where(i => i.SemesterId == semesterId && i.DayOfWeek == dayOfWeek && i.LessonNumber == lessonNumber && i.GroupId == groupId && i.LessonFrequency == lessonFrequency).Single(); }
public bool CheckScheduleItem(int semesterId, string dayOfWeek, int lessonNumber, int groupId, LessonFrequency lessonFrequency) { var result = this.ScheduleItems.Where(i => i.SemesterId == semesterId && i.DayOfWeek == dayOfWeek && i.LessonNumber == lessonNumber && i.GroupId == groupId && i.LessonFrequency == lessonFrequency).ToArray(); return result.Length == 1 ? true : false; }
private IEnumerable<SelectListItem> GetLessonFrequenciesSelectList(LessonFrequency selectedValue = LessonFrequency.Constant) { IEnumerable<SelectListItem> list = from value in EnumHelper.GetValues<LessonFrequency>() select new SelectListItem { //Text = value.ToString(), Text = value.ToString(), Value = value.ToString(), Selected = value.ToString() == selectedValue.ToString() }; return list; }
public PartialViewResult _LessonForm(int semesterId, string dayOfWeek, int lessonNumber, int groupId, LessonFrequency lessonFrequency = LessonFrequency.Constant) { ApplicationDbContext context = new ApplicationDbContext(); Models.ScheduleItem scheduleItem = new ScheduleItem() { SemesterId = semesterId, DayOfWeek = dayOfWeek, LessonNumber = lessonNumber, GroupId = groupId, LessonFrequency = lessonFrequency }; scheduleItem.Group = context.Groups.Single(i => i.Id == groupId); //Отбираем значения числ/знам по загруж ScheduleViewModel vm = ScheduleRepository.GetScheduleViewModel(semesterId, scheduleItem.Group.Course); IEnumerable<SelectListItem> freqList = GetLessonFrequenciesSelectList(); Hashtable freqLimitReached = new Hashtable(); foreach (var value in EnumHelper.GetValues<LessonFrequency>()) { freqLimitReached.Add(value.ToString(), vm.StudLessonsLimitReached(dayOfWeek, groupId, value)); } freqList = freqList.Where(i => (bool)freqLimitReached[i.Value] == false ); //проверка на другие занятия List<SelectListItem> freqList2 = new List<SelectListItem>(); var scheduleItemsForConcreteLessonNumber = vm.GetScheduleItems(semesterId, dayOfWeek, lessonNumber, groupId).Select(i => i.LessonFrequency); if (scheduleItemsForConcreteLessonNumber.Contains(LessonFrequency.Constant)) { freqList2.Clear(); } else if (scheduleItemsForConcreteLessonNumber.Contains(LessonFrequency.Nominator)) { freqList2.Add(freqList.SingleOrDefault(i => i.Value == LessonFrequency.Denominator.ToString())); } else if (scheduleItemsForConcreteLessonNumber.Contains(LessonFrequency.Denominator)) { freqList2.Add(freqList.SingleOrDefault(i => i.Value == LessonFrequency.Nominator.ToString())); } else { freqList2.AddRange(freqList); } freqList = freqList2; ViewBag.LessonId = GetLessonsSelectList(); ViewBag.LessonType = GetLessonTypesSelectList(); ViewBag.LessonFrequency = freqList; ViewBag.TeacherId = GetTeachersSelectList(); ViewBag.ClassroomId = GetClassroomsSelectList(context.Classrooms.Where(i => i.Capacity >= scheduleItem.Group.StudentsAmount).ToList()); return PartialView("_LessonFormPartial", scheduleItem); }
public static string GetSheduleItemKey(int semesterId,string dayOfWeek,int lessonNumber,int groupId,LessonFrequency lessonFrequency) { return String.Format("{0}_{1}_{2}_{3}_{4}", semesterId, dayOfWeek, lessonNumber, groupId, lessonFrequency); }