/// <summary>
        /// Возвращает связку "Преподаватель - Дисциплина",
        /// если она доступна пользователю
        /// </summary>
        /// <param name="eduPlanId"></param>
        /// <param name="disciplineId"></param>
        /// <param name="eduYearId"></param>
        /// <param name="teacherDisciplineId"></param>
        /// <param name="userName"></param>
        /// <returns></returns>
        public async Task <TeacherDiscipline> GetTeacherDisciplineByUserNameAsync(int eduPlanId,
                                                                                  int disciplineId, int eduYearId, int?teacherDisciplineId, string userName)
        {
            var eduPlan = await GetEduPlanByUserNameAsync(eduPlanId, userName);

            if (eduPlan == null)
            {
                return(null);
            }
            var eduPlanEduYear = eduPlan.EduPlanEduYears.FirstOrDefault(y => y.EduYearId == eduYearId);

            var discipline = await GetDisciplineByUserNameAsync(eduPlanId, disciplineId, userName);

            if (discipline == null)
            {
                return(null);
            }

            TeacherDiscipline teacherDiscipline = _eduPlanRepository
                                                  .GetTeacherDisciplineByDisciplineAndTeacherDisciplineId(discipline, teacherDisciplineId);

            if (teacherDiscipline == null)
            {
                teacherDiscipline = new TeacherDiscipline
                {
                    TeacherDisciplineId = teacherDisciplineId ?? 0,
                    Discipline          = discipline,
                    DisciplineId        = disciplineId,
                    EduPlanEduYear      = eduPlanEduYear,
                    EduPlanEduYearId    = eduPlanEduYear.EduPlanEduYearId
                };
            }

            return(teacherDiscipline);
        }
Example #2
0
        public async Task <IActionResult> Edit(int id, [Bind("TeacherDisciplineId,EduPlanEduYearId,TeacherId,DisciplineId")] TeacherDiscipline teacherDiscipline)
        {
            if (id != teacherDiscipline.TeacherDisciplineId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(teacherDiscipline);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!TeacherDisciplineExists(teacherDiscipline.TeacherDisciplineId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                var eduPlanEduYear = await _context.EduPlanEduYears.SingleOrDefaultAsync(py => py.EduPlanEduYearId == teacherDiscipline.EduPlanEduYearId);

                return(RedirectToAction(nameof(Index), new { eduPlanEduYear?.EduPlanId, eduPlanEduYear?.EduYearId }));
            }

            return(View(teacherDiscipline));
        }
        public async Task <IActionResult> TeacherDisciplinesCreateOrEdit(int EduPlanId, int DisciplineId, int EduYearId, int?TeacherDisciplineId)
        {
            TeacherDiscipline teacherDiscipline = await _metodKomissiyaRepository
                                                  .GetTeacherDisciplineByUserNameAsync(EduPlanId, DisciplineId, EduYearId, TeacherDisciplineId, User.Identity.Name);

            ViewBag.EduPlanId = EduPlanId;
            ViewBag.Teachers  = _selectListRepository.GetSelectListTeacherFio();
            return(View(teacherDiscipline));
        }
 /// <summary>
 /// Удаляет привязку "Преподаватель - Дисциплина"
 /// </summary>
 /// <param name="teacherDiscipline"></param>
 /// <returns></returns>
 public async Task RemoveTeacherDisciplineAsync(TeacherDiscipline teacherDiscipline)
 {
     if (teacherDiscipline == null)
     {
         return;
     }
     _context.TeacherDisciplines.Remove(teacherDiscipline);
     await _context.SaveChangesAsync();
 }
        /// <summary>
        /// Возвращает связку "Преподаватель - Дисциплина"
        /// </summary>
        /// <param name="discipline"></param>
        /// <param name="teacherDisciplineId"></param>
        /// <returns></returns>
        public TeacherDiscipline GetTeacherDisciplineByDisciplineAndTeacherDisciplineId(Discipline discipline, int?teacherDisciplineId)
        {
            if (discipline == null || teacherDisciplineId == null)
            {
                return(null);
            }
            TeacherDiscipline teacherDiscipline = discipline.TeacherDisciplines.SingleOrDefault(td => td.TeacherDisciplineId == teacherDisciplineId);

            return(teacherDiscipline);
        }
        /// <summary>
        /// Удаляет привязку "Преподаватель - Дисциплина"
        /// </summary>
        /// <param name="eduPlanId"></param>
        /// <param name="disciplineId"></param>
        /// <param name="eduYearId"></param>
        /// <param name="teacherDisciplineId"></param>
        /// <param name="userName"></param>
        /// <returns></returns>
        public async Task RemoveTeacherDisciplineByUserNameAsync(int eduPlanId, int disciplineId, int eduYearId, int teacherDisciplineId, string userName)
        {
            TeacherDiscipline teacherDiscipline = await GetTeacherDisciplineByUserNameAsync(eduPlanId, disciplineId, eduYearId, teacherDisciplineId, userName);

            if (teacherDiscipline == null || teacherDiscipline.TeacherDisciplineId == 0)
            {
                return;
            }

            await _eduPlanRepository.RemoveTeacherDisciplineAsync(teacherDiscipline);
        }
Example #7
0
        public async Task <IActionResult> Create([Bind("TeacherDisciplineId,EduPlanEduYearId,TeacherId,DisciplineId")] TeacherDiscipline teacherDiscipline)
        {
            if (ModelState.IsValid)
            {
                _context.Add(teacherDiscipline);
                await _context.SaveChangesAsync();

                var eduPlanEduYear = await _context.EduPlanEduYears.SingleOrDefaultAsync(py => py.EduPlanEduYearId == teacherDiscipline.EduPlanEduYearId);

                return(RedirectToAction(nameof(Index), new { eduPlanEduYear?.EduPlanId, eduPlanEduYear?.EduYearId }));
            }

            return(View(teacherDiscipline));
        }
        public async Task <IActionResult> TeacherDisciplinesRemove(int EduPlanId, int DisciplineId, int EduYearId, int TeacherDisciplineId)
        {
            TeacherDiscipline teacherDiscipline = await _metodKomissiyaRepository
                                                  .GetTeacherDisciplineByUserNameAsync(EduPlanId, DisciplineId, EduYearId, TeacherDisciplineId, User.Identity.Name);

            if (teacherDiscipline == null || teacherDiscipline.TeacherDisciplineId == 0)
            {
                return(NotFound());
            }

            ViewBag.EduPlanId = EduPlanId;
            ViewBag.Teachers  = _selectListRepository.GetSelectListTeacherFio();
            return(View(teacherDiscipline));
        }
        public async Task <IActionResult> TeacherDisciplinesCreateOrEditConfirmed(int EduPlanId,
                                                                                  int EduYearId, TeacherDiscipline teacherDiscipline)
        {
            TeacherDiscipline teacherDisciplineChanging = await _metodKomissiyaRepository
                                                          .GetTeacherDisciplineByUserNameAsync(EduPlanId, teacherDiscipline.DisciplineId, EduYearId, teacherDiscipline.TeacherDisciplineId, User.Identity.Name);

            if (teacherDisciplineChanging != null)
            {
                teacherDisciplineChanging.TeacherId = teacherDiscipline.TeacherId;
                await _metodKomissiyaRepository.UpdateTeacherDisciplineAsync(teacherDisciplineChanging);
            }

            return(RedirectToAction(nameof(EduPlanPreview), new { id = EduPlanId }));
        }
        private void addDiscipline_Click(object sender, RoutedEventArgs e)
        {
            TeacherDiscipline discipline        = null;
            Discipline        currentDiscipline = null;

            var editor = new DisciplineEditorWindow(_context, discipline, currentDiscipline);

            Hide();
            editor.ShowDialog();

            if (editor.DialogResult == true)
            {
                listDisciplines.ItemsSource = _context.TeacherDisciplines.ToList();
            }

            ShowDialog();
        }
        public async Task <IActionResult> AddTeacher(int id, int teacherId)
        {
            if (_context.TeacherDisciplines.Where(x => x.DisciplineId == id && x.TeacherId == teacherId).Count() > 0)
            {
                return(Conflict());
            }

            var teacherDiscipline = new TeacherDiscipline();

            teacherDiscipline.DisciplineId = id;
            teacherDiscipline.TeacherId    = teacherId;

            _context.Add(teacherDiscipline);
            await _context.SaveChangesAsync();

            return(RedirectToAction(nameof(Edit), new { id = id }));
        }
        public async Task <IActionResult> AddDiscipline(int id, int DisciplineId, string ReturnUrl)
        {
            if (_context.TeacherDisciplines.Where(x => x.TeacherId == id && x.DisciplineId == DisciplineId).Any())
            {
                return(Conflict());
            }

            var newTeacherDisp = new TeacherDiscipline
            {
                TeacherId    = (int)id,
                DisciplineId = DisciplineId
            };

            _context.Add(newTeacherDisp);
            await _context.SaveChangesAsync();

            ViewData["ReturnUrl"] = ReturnUrl;
            return(RedirectToAction(nameof(Edit), new { id, ReturnUrl }));
        }
Example #13
0
        public DisciplineEditorWindow(UniversityEntities context, TeacherDiscipline discipline, Discipline currentDiscipline)
        {
            InitializeComponent();

            _context           = context;
            _discipline        = discipline;
            _currentDiscipline = currentDiscipline;

            startAcademicYearPicker.SelectedDate = new DateTime(2001, 1, 1);
            endAcademicYearPicker.SelectedDate   = new DateTime(2001, 1, 1);
            totalHoursBox.Text = "0";

            listGroups.ItemsSource   = context.Groups.ToList();
            listTeachers.ItemsSource = context.Teachers.ToList();

            if (_discipline == null)
            {
                _discipline       = new TeacherDiscipline();
                disciplineWasNull = true;

                _currentDiscipline       = new Discipline();
                currentDisciplineWasNull = true;

                deleteButton.Visibility = Visibility.Hidden;

                return;
            }

            nameBox.Text                 = _discipline.Discipline.Name;
            codeBox.Text                 = _discipline.Discipline.Code;
            totalHoursBox.Text           = _discipline.TotalHours.ToString();
            startAcademicYearPicker.Text = _discipline.AcademicYearStart.ToString("d");
            endAcademicYearPicker.Text   = _discipline.AcademicYearEnd.ToString("d");

            listGroups.SelectedItem   = _discipline.Group;
            listTeachers.SelectedItem = _discipline.Teacher;
        }
 /// <summary>
 /// Обновляет привязку "Преподаватель - Дисциплина"
 /// </summary>
 /// <param name="teacherDisciplineChanging"></param>
 /// <returns></returns>
 public async Task UpdateEduAnnotationAsync(TeacherDiscipline teacherDisciplineChanging)
 {
     _context.TeacherDisciplines.Update(teacherDisciplineChanging);
     await _context.SaveChangesAsync();
 }
 /// <summary>
 /// Обновляет привязку "Преподаватель - Дисциплина"
 /// </summary>
 /// <param name="teacherDisciplineChanging"></param>
 /// <returns></returns>
 public async Task UpdateTeacherDisciplineAsync(TeacherDiscipline teacherDisciplineChanging)
 {
     await _eduPlanRepository.UpdateEduAnnotationAsync(teacherDisciplineChanging);
 }