Пример #1
0
        public async Task EditAsync(SubjectModifyInputModel modifiedModel)
        {
            var subject = _subjectsRepository.All().FirstOrDefault(s => s.Id == modifiedModel.Id);

            if (subject != null)
            {
                var inputModel = modifiedModel.Subject;
                subject.Name       = inputModel.Name;
                subject.YearGrade  = inputModel.YearGrade;
                subject.SchoolYear = inputModel.SchoolYear;

                var teacherId = int.Parse(inputModel.TeacherId);
                if (subject.TeacherId != teacherId)
                {
                    var teacher = _teachersRepository.All().FirstOrDefault(t => t.Id == teacherId);
                    if (teacher != null)
                    {
                        subject.Teacher = teacher;
                    }
                }

                _subjectsRepository.Update(subject);
                await _subjectsRepository.SaveChangesAsync();
            }
        }
Пример #2
0
        public IActionResult DeleteSubject(int id)
        {
            var subject    = _subjectsService.GetById <SubjectInputModel>(id);
            var inputModel = new SubjectModifyInputModel()
            {
                Id      = id,
                Subject = subject
            };

            return(View(inputModel));
        }
Пример #3
0
        public async Task <IActionResult> EditSubject(int id)
        {
            var user = await _userManager.GetUserAsync(User);

            var isAdmin = await IsAdmin();

            var schoolIds         = _schoolsServices.GetAllByUserId <SchoolViewModel>(user?.UniqueGradebookId, isAdmin).Select(s => s.Id);
            var teachersInSchools = _teachersService.GetAllBySchoolIds <TeacherViewModel>(schoolIds);
            var subject           = _subjectsService.GetById <SubjectInputModel>(id);
            var inputModel        = new SubjectModifyInputModel()
            {
                Id       = id,
                Teachers = teachersInSchools.Select(t => new SelectListItem($"{t.FirstName} {t.LastName} ({t.SchoolName})", t.Id.ToString())).ToList(),
                Subject  = subject
            };

            return(View(inputModel));
        }
Пример #4
0
        public async Task <IActionResult> DeleteSubject(SubjectModifyInputModel inputModel, string onSubmitAction)
        {
            if (onSubmitAction.IsNullOrEmpty() || onSubmitAction == "Cancel")
            {
                return(RedirectToAction(nameof(Index)));
            }

            try
            {
                await _subjectsService.DeleteAsync(inputModel.Id);

                return(RedirectToAction("SubjectsList", "Subjects", new { area = string.Empty }));  // string is empty in order to exit current principal area
            }
            catch (Exception e)
            {
                _logger.LogError(e, $"An exception occured during student DELETE operation for subject with id {inputModel.Id}. Ex: {e.Message}");
                return(RedirectToAction("Error", "Home"));
            }
        }
Пример #5
0
        public async Task <IActionResult> EditSubject(SubjectModifyInputModel inputModel)
        {
            if (!ModelState.IsValid || inputModel.Subject.TeacherId.IsNullOrEmpty())
            {
                //ToDo: in case of null teacher, return appropriate message or add model validation?
                return(View(inputModel));
            }

            try
            {
                await _subjectsService.EditAsync(inputModel);

                return(RedirectToAction("ById", "Subjects", new { area = string.Empty, id = inputModel.Id }));
            }
            catch (Exception e)
            {
                _logger.LogError(e, $"An exception occured during student UPDATE operation for subject with id {inputModel.Id}. Ex: {e.Message}");
                return(RedirectToAction("Error", "Home"));
            }
        }