Exemplo n.º 1
0
        public async Task <IActionResult> CreateAsync([FromBody] CreateTagRequest model)
        {
            if (!ModelState.IsValid)
            {
                return(Bad(ModelState));
            }

            if (await _tagsService.AnyAsync(new TagSpecification(x => x.Title.ToLower().Equals(model.Title.ToLower()))))
            {
                return(Bad(ModelState));
            }

            var tag = _mapper.Map <Tag>(model);
            await _tagsService.InsertAsync(tag);

            var response = new CreatedResponse <int> {
                Id = tag.Id
            };

            var baseUrl     = $@"{HttpContext.Request.Scheme}://{HttpContext.Request.Host.ToUriComponent()}";
            var locationUrl = baseUrl + "/" + ApiRoutes.TagsController.GetTag.Replace("{id}", tag.Id.ToString());

            return(Created(locationUrl, response));
        }