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());
        }