Esempio n. 1
0
        public IActionResult PostTrail([FromBody] CreateTrailDto createTrailDto)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(modelState: ModelState));
            }

            if (_trailRepository.TrailExists(createTrailDto.Name))
            {
                ModelState.AddModelError("no duplicates", "Trail already exists");
                return(BadRequest(ModelState));
            }

            var trailToPost = _mapper.Map <Trail>(createTrailDto);

            trailToPost.DateCreated = DateTime.Now;

            if (_trailRepository.PostNewTrail(trailToPost))
            {
                return(CreatedAtAction("GetTrailById",
                                       new { trailId = trailToPost.Id },
                                       _mapper.Map <CreateTrailDto>(trailToPost)));
            }

            ModelState.AddModelError("server error", "something went wrong while saving the trail");
            return(StatusCode(StatusCodes.Status500InternalServerError, ModelState));
        }