Exemplo n.º 1
0
        public async Task <SignUpToCourseDtoCreateResult> Post(SignUpToCourseDtoCreate Course)
        {
            CourseDto courseDto = await _courseService.Get(new Guid(Course.CourseId));

            if (courseDto != null)
            {
                if (courseDto.Capacity > courseDto.NumberOfStudents)
                {
                    var model  = _mapper.Map <SignUpToCourseModel>(Course);
                    var entity = _mapper.Map <SignUpToCourseEntity>(model);
                    var result = await _repository.InsertAsync(entity);

                    courseDto.NumberOfStudents = courseDto.NumberOfStudents + 1;
                    await _courseService.Put(new CourseDtoUpdate {
                        Id               = courseDto.Id,
                        Capacity         = courseDto.Capacity,
                        Name             = courseDto.Name,
                        NumberOfStudents = courseDto.NumberOfStudents
                    });

                    return(_mapper.Map <SignUpToCourseDtoCreateResult>(result));
                }
                else
                {
                    throw new ArgumentException("Este curso esta com sua capacidade maxima, nao e possivel mais inscrever-se!");
                }
            }
            return(null);
        }
Exemplo n.º 2
0
        public async Task <ActionResult> Post([FromBody] SignUpToCourseDtoCreate course)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            try
            {
                var result = await _service.Post(course);

                if (result != null)
                {
                    return(Created(new Uri(Url.Link("GetWithIdSignUpToCourse", new { id = result.Id })), result));
                }
                else
                {
                    return(BadRequest());
                }
            }
            catch (ArgumentException e)
            {
                return(StatusCode((int)HttpStatusCode.InternalServerError, e.Message));
            }
        }