//проверет можно ли назначить занятие на числитель или знаменатель
        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);
        }
Exemplo n.º 3
0
        //проверет можно ли назначить занятие на числитель или знаменатель
        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);
        }
Exemplo n.º 4
0
 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));
 }
Exemplo n.º 5
0
 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());
 }
Exemplo n.º 6
0
        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;
 }
Exemplo n.º 10
0
        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;
        }
Exemplo n.º 11
0
        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);
        }
Exemplo n.º 12
0
 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);
 }