public IActionResult Post([FromBody] StudentToViewModel studentFromClient) { ICollection <Course> courses = new List <Course>(); foreach (int course in studentFromClient.CoursesIds) { var courseFromDb = _dbAccessUnitOfWork.Courses.Get(course); if (courseFromDb == null) { return(NotFound($"Course {course} not found")); } else { courses.Add(courseFromDb); } } if (!ModelState.IsValid) //por validação de annotation { return(BadRequest()); } var studentEntity = studentFromClient.Adapt <Student>(); studentEntity.Courses = courses; _dbAccessUnitOfWork.Students.Add(studentEntity); _dbAccessUnitOfWork.Save(); var studentToReturn = studentEntity.Adapt <StudentViewModel>(); return(CreatedAtRoute("GetStudent", new { id = studentEntity.Id }, studentToReturn)); }
public IActionResult Put(int id, [FromBody] StudentToViewModel studentFromClient) { var student = _dbAccessUnitOfWork.Students.Get(id); foreach (int course in studentFromClient.CoursesIds) { var courseFromDb = _dbAccessUnitOfWork.Courses.Get(course); if (courseFromDb == null) { return(NotFound($"Course {course} not found")); } else { if (student.Courses == null) { student.Courses = new List <Course>(); } if (courseFromDb.Students == null) { courseFromDb.Students = new List <Student>(); } student.Courses.Add(courseFromDb); courseFromDb.Students.Add(student); } } _mapper.Map(studentFromClient, student); _dbAccessUnitOfWork.Save(); return(NoContent()); }