示例#1
0
        public async Task EditAsync(StudentModifyInputModel modifiedModel)
        {
            var student = _studentsRepository.All().FirstOrDefault(s => s.Id == modifiedModel.Id);

            if (student != null)
            {
                var inputModel = modifiedModel.Student;
                student.FirstName = inputModel.FirstName;
                student.LastName  = inputModel.LastName;
                student.BirthDate = inputModel.BirthDate;
                student.PersonalIdentificationNumber = inputModel.PersonalIdentificationNumber;

                var schoolId = int.Parse(inputModel.SchoolId);
                var school   = _schoolsRepository.All().FirstOrDefault(s => s.Id == schoolId);
                if (school != null)
                {
                    student.School = school;
                    var classId = int.Parse(inputModel.ClassId);
                    if (school.Classes.Any(c => c.Id == classId))
                    {
                        student.Class = school.Classes.FirstOrDefault(c => c.Id == classId);
                    }
                }

                _studentsRepository.Update(student);
                await _studentsRepository.SaveChangesAsync();
            }
        }
示例#2
0
        public IActionResult DeleteStudent(int id)
        {
            var student    = _studentsService.GetById <StudentInputModel>(id);
            var inputModel = new StudentModifyInputModel()
            {
                Id      = id,
                Student = student
            };

            return(View(inputModel));
        }
示例#3
0
        public async Task <IActionResult> EditStudent(int id)
        {
            var user = await _userManager.GetUserAsync(User);

            var isAdmin = await IsAdmin();

            var schools    = _schoolsServices.GetAllByUserId <SchoolViewModel>(user?.UniqueGradebookId, isAdmin);
            var student    = _studentsService.GetById <StudentInputModel>(id);
            var inputModel = new StudentModifyInputModel()
            {
                Id      = id,
                Schools = schools.Select(s => new SelectListItem(s.Name, s.Id.ToString())).ToList(),
                Classes = SetClasses(schools).ToList(),
                Student = student
            };

            return(View(inputModel));
        }
示例#4
0
        public async Task <IActionResult> DeleteStudent(StudentModifyInputModel inputModel, string onSubmitAction)
        {
            if (onSubmitAction.IsNullOrEmpty() || onSubmitAction == "Cancel")
            {
                return(RedirectToAction(nameof(Index)));
            }

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

                return(RedirectToAction(nameof(Index)));
            }
            catch (Exception e)
            {
                _logger.LogError(e, $"An exception occured during student DELETE operation for student with id {inputModel.Id}. Ex: {e.Message}");
                return(RedirectToAction("Error", "Home"));
            }
        }
示例#5
0
        public async Task <IActionResult> EditStudent(StudentModifyInputModel inputModel)
        {
            if (!ModelState.IsValid || inputModel.Student.SchoolId.IsNullOrEmpty() || inputModel.Student.ClassId.IsNullOrEmpty())
            {
                //ToDo: in case of null school/class, return appropriate message or add model validation?
                return(View(inputModel));
            }

            try
            {
                await _studentsService.EditAsync(inputModel);

                return(RedirectToAction(nameof(Index)));
            }
            catch (Exception e)
            {
                _logger.LogError(e, $"An exception occured during student UPDATE operation for student with id {inputModel.Id}. Ex: {e.Message}");
                return(RedirectToAction("Error", "Home"));
            }
        }