private void AssertTeacherLessonEquals(TeacherLesson actual, TeacherLesson expected)
 {
     Assert.IsNotNull(actual);
     Assert.IsTrue(actual.LessonId == expected.LessonId);
     Assert.IsTrue(actual.TeacherId == expected.TeacherId);
     AssertLessonsEquals(actual.Lesson, expected.Lesson);
     AssertTeachersEquals(actual.Teacher, expected.Teacher);
 }
Example #2
0
        public TeacherLesson Save(TeacherLesson teacherLesson)
        {
            var savingEntity = teacherLesson.Clone() as TeacherLesson;

            HandleForeignKey(() => savingEntity.Teacher, t => savingEntity.Teacher = t);
            HandleForeignKey(() => savingEntity.Lesson, l => savingEntity.Lesson   = l);

            return(SaveEntityAndUpdate(savingEntity));
        }
Example #3
0
        private Command DeleteTeacherLesson(
            ScheduleService service,
            Func <string, string> requestInput)
        => args =>
        {
            var teacherId = requestInput("Введите ID преподавателя");
            var lessonId  = requestInput("Введите ID предмета");

            var teacherLesson = new TeacherLesson
            {
                Teacher = new Teacher {
                    Id = teacherId
                },
                Lesson = new Lesson {
                    Id = lessonId
                }
            };

            Del(() => service.Delete(teacherLesson));
        };
Example #4
0
        public bool addTeacherLessons(int name, int lname)
        {
            using (var SC = new DAL.Model.MVC_Sc())
            {
                var cek = SC.TeacherLessons.Where(x => x.TeacherId == lname).Where(x => x.LessonId == lname).FirstOrDefault();
                if (cek == null)
                {
                    TeacherLesson sl = new TeacherLesson();
                    sl.LessonId  = lname;
                    sl.TeacherId = name;


                    SC.TeacherLessons.Add(sl);
                    SC.SaveChanges();
                    return(true);
                }

                return(false);
            }
        }
Example #5
0
        public ActionResult Schedule(int teacherId, int dayNumber)
        {
            var teacher = UnitOfWork.Repository <Job>()
                          .GetQ(x => x.JobId == teacherId)
                          .SingleOrDefault();

            if (teacher == null)
            {
                return(Content("Error"));
            }

            Stopwatch stopWatch = new Stopwatch();

            stopWatch.Start();

            var personId      = teacher.Employee.PersonId;
            var dailySchedule = UnitOfWork.Repository <Lesson>()
                                .GetQ(x => x.Job.Employee.PersonId == personId &&
                                      x.WeekNumber == UserProfile.WeekNumber && x.DayNumber == dayNumber &&
                                      x.DeletedAt == null,
                                      orderBy: o => o.OrderBy(n => n.ClassNumber))
                                .GroupBy(g => new { g.ClassNumber })
                                .Select(x => new TeacherLesson
            {
                DayNumber   = dayNumber,
                ClassNumber = x.Key.ClassNumber,
                Disciplines = x.GroupBy(g => new { g.DisciplineId, g.Discipline.DisciplineName, g.LessonTypeId })
                              .Select(d => new TeacherDiscipline
                {
                    DisciplineId   = d.Key.DisciplineId,
                    DisciplineName = d.Key.DisciplineName,
                    IsLection      = d.Key.LessonTypeId == (int)LessonTypes.Lection,
                    Auditoriums    = d.GroupBy(g => new { g.AuditoriumId, AuditoriumNumber = g.Auditorium.AuditoriumNumber + g.Auditorium.Housing.Abbreviation })
                                     .Select(a =>
                                             new TeacherDisciplineAuditorium
                    {
                        AuditoriumId     = a.Key.AuditoriumId,
                        AuditoriumNumber = a.Key.AuditoriumNumber,
                        Groups           = a.Select(y => y.Group.DivisionName)
                    })
                })
            }
                                        )
                                .ToList();

            // Окна в расписании преподавателя
            var jobRepository = UnitOfWork.Repository <Job>() as JobRepository;

            if (jobRepository != null)
            {
                var teacherDowntime = jobRepository.TeachersDowntime(UserProfile.WeekNumber, teacherId, maxDiff: 2)
                                      .Select(x => new
                {
                    x.DayNumber,
                    x.ClassNumber,
                    x.ClassDiff
                })
                                      .Distinct()
                                      .OrderBy(n => n.ClassNumber)
                                      .ToList();

                // Перебираем занятия между которыми окна
                for (int i = 0; i < teacherDowntime.Count() - 1; i++)
                {
                    var classNumber = teacherDowntime[i].ClassNumber;
                    var classDiff   = teacherDowntime[i].ClassDiff;

                    // Формируем пустые занятия-окна
                    for (int j = classNumber + 1; j <= classNumber + classDiff; j++)
                    {
                        var downtimeLesson = new TeacherLesson
                        {
                            DayNumber   = teacherDowntime[i].DayNumber,
                            ClassNumber = j,
                            IsDowntime  = true
                        };

                        dailySchedule.Add(downtimeLesson);
                    }
                }
            }

            var t = stopWatch.ElapsedMilliseconds;

            return(PartialView("_TeacherDailySchedule", dailySchedule));
        }
        public Initialization_TeacherLesson()
        {
            //OC
            TeacherLesson tl1 = new TeacherLesson
            {
                TeacherLessonId = 1,
                TeacherId       = 3,
                LessonId        = 1
            };
            TeacherLesson tl2 = new TeacherLesson
            {
                TeacherLessonId = 2,
                TeacherId       = 3,
                LessonId        = 2
            };
            //WEB
            TeacherLesson tl3 = new TeacherLesson
            {
                TeacherLessonId = 3,
                TeacherId       = 1,
                LessonId        = 3
            };
            TeacherLesson tl4 = new TeacherLesson
            {
                TeacherLessonId = 4,
                TeacherId       = 1,
                LessonId        = 4
            };
            TeacherLesson tl5 = new TeacherLesson
            {
                TeacherLessonId = 5,
                TeacherId       = 1,
                LessonId        = 5
            };
            TeacherLesson tl6 = new TeacherLesson
            {
                TeacherLessonId = 6,
                TeacherId       = 1,
                LessonId        = 6
            };
            TeacherLesson tl7 = new TeacherLesson
            {
                TeacherLessonId = 7,
                TeacherId       = 1,
                LessonId        = 7
            };
            TeacherLesson tl8 = new TeacherLesson
            {
                TeacherLessonId = 8,
                TeacherId       = 3,
                LessonId        = 7
            };
            TeacherLesson tl9 = new TeacherLesson
            {
                TeacherLessonId = 9,
                TeacherId       = 1,
                LessonId        = 8
            };
            TeacherLesson tl10 = new TeacherLesson
            {
                TeacherLessonId = 10,
                TeacherId       = 3,
                LessonId        = 8
            };

            _teacherLessons.Add(tl1);
            _teacherLessons.Add(tl2);
            _teacherLessons.Add(tl3);
            _teacherLessons.Add(tl4);
            _teacherLessons.Add(tl5);
            _teacherLessons.Add(tl6);
            _teacherLessons.Add(tl7);
            _teacherLessons.Add(tl8);
            _teacherLessons.Add(tl9);
            _teacherLessons.Add(tl10);
        }