Example #1
0
        public async Task <IActionResult> Update(BrandReadDto brandCreateDto)
        {
            var brand = mapper.Map <Brand>(brandCreateDto);

            await brandService.Update(brand);

            return(NoContent());
        }
Example #2
0
        public ActionResult <BrandReadDto> CreateBrand(BrandCreateDto brandCreateDto,
                                                       [FromHeader(Name = "Accept")] string mediaType)
        {
            if (!MediaTypeHeaderValue.TryParse(mediaType, out MediaTypeHeaderValue parsedMediaType))
            {
                return(BadRequest());
            }
            Brand createdBrand = _mapper.Map <Brand>(brandCreateDto);

            _repository.AddBrand(createdBrand);
            _repository.SaveChanges();
            BrandReadDto brandReadDto = _mapper.Map <BrandReadDto>(createdBrand);

            if (parsedMediaType.MediaType == "application/hateoas+json")
            {
                var links           = CreateLinksForBrand(brandReadDto.Id);
                var propsDictionary = brandReadDto.ShapeData(null) as System.Collections.Generic.IDictionary <string, object>;
                propsDictionary.Add("links", links);
                return(CreatedAtRoute("GetBrandById", new { brandId = propsDictionary["Id"] }, propsDictionary));
            }
            return(Ok(brandReadDto));
        }
Example #3
0
        public ActionResult UpdateBrand(Guid brandId, BrandUpdateDto brandUpdateDto)
        {
            Brand brandFromRep = _repository.GetBrandById(brandId);

            //put upserting
            if (brandFromRep == null)
            {
                Brand newBrand = _mapper.Map <Brand>(brandUpdateDto);
                newBrand.Id = brandId;
                _repository.AddBrand(newBrand);
                _repository.SaveChanges();

                BrandReadDto newBrandRead = _mapper.Map <BrandReadDto>(newBrand);
                return(CreatedAtRoute("GetBrandById", new { brandId }, newBrandRead));
            }
            _mapper.Map(brandUpdateDto, brandFromRep);

            _repository.UpdateBrand(brandFromRep);

            _repository.SaveChanges();

            return(NoContent());
        }