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(); } }
public IActionResult DeleteSubject(int id) { var subject = _subjectsService.GetById <SubjectInputModel>(id); var inputModel = new SubjectModifyInputModel() { Id = id, Subject = subject }; return(View(inputModel)); }
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)); }
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")); } }
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")); } }