public ActionResult TeachersCalendar(string teacherEmail)
        {
            ViewBag.Message = "Teachers Calendar.";
            var teacher  = _teacherRepository.GetTeacherByName(teacherEmail);
            var calendar = _teacherRepository.GetTeacherCalendar(teacher.TeacherId ?? 1);
            var teacherCalendarViewModelList = new List <TeacherCalendarViewModel>();

            var bookingTimes = new List <BookingTime>();

            if (calendar != null)
            {
                foreach (var cal in calendar)
                {
                    var teacherCalendarViewModel = new TeacherCalendarViewModel();
                    teacherCalendarViewModel.CalendarBookingId = (int)calendar.FirstOrDefault().CalendarBookingId;
                    teacherCalendarViewModel.BookingTimes      = bookingTimes.ToArray();
                    teacherCalendarViewModel.ClassId           = (int)calendar.FirstOrDefault().ClassId;
                    teacherCalendarViewModel.Description       = calendar.FirstOrDefault().Description;
                    teacherCalendarViewModel.TeacherId         = calendar.FirstOrDefault().TeacherId;
                    teacherCalendarViewModel.StudentId         = calendar.FirstOrDefault().StudentId;
                    teacherCalendarViewModel.SubjectId         = calendar.FirstOrDefault().SubjectId;
                    teacherCalendarViewModel.TeacherFullName   = calendar.FirstOrDefault().TeacherFullName;
                    teacherCalendarViewModel.StudentFullName   = calendar.FirstOrDefault().StudentFullName;
                    teacherCalendarViewModel.StudentTypeId     = Int32.Parse(calendar.FirstOrDefault().StudentTypeId);
                    ViewBag.CalendarUiBookingList = calendar.Select(p => p.BookingTime).ToArray();
                    teacherCalendarViewModelList.Add(teacherCalendarViewModel);
                }
            }
            ViewBag.CalendarUiList = teacherCalendarViewModelList.ToArray();
            return(View("TeachersCalendar", teacherCalendarViewModelList.Count() > 0 ? teacherCalendarViewModelList.ToArray()[teacherCalendarViewModelList.Count() - 1] : null));
        }
        private void GetTeacherBookingTimes(TeacherCalendarViewModel bookTeacherTime)
        {
            var     teacherCalendar = _repositoryServices.GetTeacherCalendarByBookingId(bookTeacherTime.CalendarBookingId);
            Student student         = _repositoryServices.GetStudentById(teacherCalendar.StudentId);
            Subject subject         = _repositoryServices.GetSubjectById(teacherCalendar.SubjectId);

            bookTeacherTime.StudentId         = (int)student.StudentId;
            bookTeacherTime.SubjectId         = (int)subject.SubjectId;
            bookTeacherTime.CalendarBookingId = teacherCalendar.CalendarBookingId;


            var calendarBookingViewModels = new List <CalendarBookingViewModel>();

            student = _repositoryServices.GetStudentById(teacherCalendar.StudentId);
            subject = _repositoryServices.GetSubjectById(teacherCalendar.SubjectId);
            bookTeacherTime.StudentId         = (int)student.StudentId;
            bookTeacherTime.SubjectId         = (int)subject.SubjectId;
            bookTeacherTime.CalendarBookingId = teacherCalendar.CalendarBookingId;

            var classRooms        = _repositoryServices.GetClassrooms();
            var calendars         = _repositoryServices.GetTeacherCalendar();
            var calendarsLeftJoin = from cal in calendars
                                    join cls in classRooms on
                                    cal.CalendarBookingId equals cls.CalendarId into res
                                    from q in res.DefaultIfEmpty()
                                    select new
            {
                ClassroomId   = q == null ? null : q.ClassroomId,
                SubjectId     = cal.SubjectId,
                TeacherId     = cal.TeacherId,
                StudentId     = cal.StudentId,
                BookingTimeId = cal.BookingTimeId
            };


            foreach (var cal in calendarsLeftJoin)
            {
                student = _repositoryServices.GetStudentById(cal.StudentId);
                subject = _repositoryServices.GetSubjectById(cal.SubjectId);
                var teacher     = _repositoryServices.GetTeacherById(cal.TeacherId);
                var bookingTime = _repositoryServices.GetBookingById(cal.BookingTimeId);

                if (bookingTime == null || teacher.TeacherId != bookTeacherTime.TeacherId)
                {
                    continue;
                }
                calendarBookingViewModels.Add(new CalendarBookingViewModel {
                    Teacher = teacher, Subject = subject, Student = student, BookingTime = bookingTime, ClassroomId = cal.ClassroomId
                });
            }
            ViewBag.CalendarUiList = calendarBookingViewModels.ToArray();
            ModelState.Clear();
        }
 public ActionResult BookTeacherHelpTime(TeacherCalendarViewModel bookingTimeViewModel)
 {
     ViewBag.Message = "Book Teacher Time.";
     GetUIDropdownLists();
     if (ModelState.IsValid)
     {
         if (bookingTimeViewModel.Delete != null)
         {
             var teacherCalendar = _teacherRepository.GetTeacherCalendarByBookingId(bookingTimeViewModel.CalendarBookingId);
             _teacherRepository.DeleteTeacherCalendarByBooking(teacherCalendar);
             return(View("SuccssessfullCreation"));
         }
         Teacher teacher = _teacherRepository.GetTeacherByName(User.Identity.Name);
         Student student = _teacherRepository.GetStudentByName(bookingTimeViewModel.StudentFullName);
         Subject subject = _teacherRepository.GetSubjectById(bookingTimeViewModel.SubjectId);
         foreach (var bookingTime in bookingTimeViewModel.BookingTimes)
         {
             _teacherRepository.SaveOrUpdateBooking(teacher, student, subject, bookingTime, bookingTimeViewModel.Description);
         }
         return(View("SucssessfullCreation"));
     }
     return(View("BookTeacherHelpTime", bookingTimeViewModel));
 }
Example #4
0
        public ActionResult BookTeacherHelpTime(TeacherCalendarViewModel bookingTimeViewModel)
        {
            ViewBag.Message = "Book Teacher Time.";
            GetUIDropdownLists();

            if (bookingTimeViewModel.CalendarBookingId < 1)
            {
                ModelState.AddModelError("Select", "Calendar BookingId required");
            }

            if (bookingTimeViewModel.Select != null)
            {
                if (ModelState.IsValid)
                {
                    var calendarBookingViewModels = new List <CalendarBookingViewModel>();
                    var calendar =
                        _teacherRepository.GetTeacherCalendarByBookingId(bookingTimeViewModel.CalendarBookingId);
                    Student student = _teacherRepository.GetStudentById(calendar.StudentId);
                    Subject subject = _teacherRepository.GetSubjectById(calendar.SubjectId);
                    bookingTimeViewModel.StudentId         = (int)student.StudentId;
                    bookingTimeViewModel.SubjectId         = (int)subject.SubjectId;
                    bookingTimeViewModel.CalendarBookingId = calendar.CalendarBookingId;
                    ModelState.Clear();

                    var calendars  = _teacherRepository.GetTeacherCalendar();
                    var classRooms = _teacherRepository.GetClassrooms();

                    var calendarsLeftJoin = from cal in calendars
                                            join cls in classRooms on
                                            cal.CalendarBookingId equals cls.CalendarId into res
                                            from q in res.DefaultIfEmpty()
                                            select new
                    {
                        ClassroomId   = q == null ? null : q.ClassroomId,
                        SubjectId     = cal.SubjectId,
                        TeacherId     = cal.TeacherId,
                        StudentId     = cal.StudentId,
                        BookingTimeId = cal.BookingTimeId
                    };
                    if (calendarsLeftJoin != null)
                    {
                        foreach (var cal in calendarsLeftJoin)
                        {
                            student = _teacherRepository.GetStudentById(cal.StudentId);
                            subject = _teacherRepository.GetSubjectById(cal.SubjectId);
                            var teacher     = _teacherRepository.GetTeacherById(cal.TeacherId);
                            var bookingTime = _teacherRepository.GetBookingById(cal.BookingTimeId);

                            if (bookingTime == null)
                            {
                                continue;
                            }
                            calendarBookingViewModels.Add(new CalendarBookingViewModel
                            {
                                Teacher     = teacher,
                                Subject     = subject,
                                Student     = student,
                                BookingTime = bookingTime,
                                ClassroomId = cal.ClassroomId
                            });
                        }
                    }
                    ViewBag.CalendarUiList = calendarBookingViewModels.ToArray();
                    return(View("BookTeacherHelpTime", bookingTimeViewModel));
                }
                return(View("BookTeacherHelpTime", bookingTimeViewModel));
            }
            if (bookingTimeViewModel.Delete != null)
            {
                if (ModelState.IsValid)
                {
                    var teacherCalendar =
                        _teacherRepository.GetTeacherCalendarByBookingId(bookingTimeViewModel.CalendarBookingId);
                    _teacherRepository.DeleteTeacherCalendarByBooking(teacherCalendar);
                    return(View("SuccessfullCreation"));
                }
                return(View("BookTeacherHelpTime", bookingTimeViewModel));
            }
            if (bookingTimeViewModel.SubjectId < 1)
            {
                ModelState.AddModelError("Subject", "Subject Id is required");
            }
            if (ModelState.IsValid)
            {
                Teacher teacher = _teacherRepository.GetTeacherById(bookingTimeViewModel.TeacherId);
                Student student = _teacherRepository.GetStudentByName(User.Identity.Name);
                Subject subject = _teacherRepository.GetSubjectById(bookingTimeViewModel.SubjectId);
                foreach (var bookingTime in bookingTimeViewModel.BookingTimes)
                {
                    _teacherRepository.SaveOrUpdateBooking(teacher, student, subject, bookingTime,
                                                           bookingTimeViewModel.Description);
                }

                return(View("SuccessfullCreation"));
            }
            return(View("BookTeacherHelpTime", bookingTimeViewModel));
        }