示例#1
0
        public IActionResult UpdateStudent(string studentId, [FromBody] StudentForCreatingDto student)
        {
            var studentFromRepo = _repository.GetStudent(studentId);

            if (studentFromRepo == null)
            {
                // Student not exists, by REST PUT we must create new student
                var studentToAdd = _mapper.Map <Entities.Student>(student);
                studentToAdd.Id = studentId;
                _repository.AddStudent(studentToAdd);

                _repository.Save();

                var studentToReturn = _mapper.Map <StudentDto>(studentToAdd);
                return(CreatedAtRoute("GetStudent", new
                {
                    studentId = studentToReturn.Id
                }, studentToReturn));
            }

            // course exist, we update one
            _mapper.Map(student, studentFromRepo);

            _repository.UpdateStudent(studentId, studentFromRepo);

            _repository.Save();

            return(NoContent());
        }
示例#2
0
        public ActionResult AddSubjects(string studentId, SubjectsToStudentOperatins subjectToAdd)
        {
            var studentFromRepo = _repository.GetStudent(studentId);

            if (studentId == null)
            {
                return(NotFound());
            }

            foreach (var subjectId in subjectToAdd.Subjects)
            {
                if (_repository.SubjectExists(subjectId))
                {
                    _repository.AddSubjectToStudent(studentFromRepo.Id, subjectId);
                }
            }

            _repository.UpdateStudent(studentFromRepo.Id, studentFromRepo);
            _repository.Save();
            var subjectsEntities = _repository.GetSubjectsForStudent(studentId, false);
            var subjectsDtos     = subjectsEntities.Select(s => _mapper.Map <SubjectDto>(s)).ToList();

            return(CreatedAtRoute("GetSubjectsForStudent", new { }, subjectsDtos));
            // Todo GET available subjects to add
        }