Exemplo n.º 1
0
        public ActionResult PartialCommandUpdate(int id, Microsoft.AspNetCore.JsonPatch.JsonPatchDocument <CommandUpdateDto> patchDoc)
        {
            var commandModelFromRepo = _repository.GetCommandById(id);

            if (commandModelFromRepo == null)
            {
                return(NotFound());
            }

            var commandToPatch = _mapper.Map <CommandUpdateDto>(commandModelFromRepo);

            patchDoc.ApplyTo(commandToPatch, ModelState);
            if (!TryValidateModel(commandToPatch))
            {
                return(ValidationProblem(ModelState));
            }

            _mapper.Map(commandToPatch, commandModelFromRepo);

            _repository.UpdateCommand(commandModelFromRepo);

            _repository.SaveChanges();

            return(NoContent());
        }
Exemplo n.º 2
0
        public IActionResult PartialUpdatePointOfInterest(int cityId, int id, [FromBody] Microsoft.AspNetCore.JsonPatch.JsonPatchDocument <PointOfInterestForUpdateDto> patchDoc)
        {
            if (!_cityInfoRepository.CityExists(cityId))
            {
                return(NotFound());
            }

            var entry = _cityInfoRepository.GetPointForInterestForCity(cityId, id);

            if (entry == null)
            {
                return(NotFound());
            }

            var entryToPatch = _mapper.Map <PointOfInterestForUpdateDto>(entry);

            patchDoc.ApplyTo(entryToPatch, ModelState);
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            if (!TryValidateModel(entryToPatch))
            {
                return(BadRequest());
            }

            _mapper.Map(entryToPatch, entry);
            _cityInfoRepository.UpdatePointOfInterestForCity(cityId, entry);
            _cityInfoRepository.Save();

            return(NoContent());
        }
Exemplo n.º 3
0
        public async Task <T> Patch <TCreation, TDTO>(int id, Microsoft.AspNetCore.JsonPatch.JsonPatchDocument <TDTO> patchDocument) where TDTO : class
        {
            if (patchDocument == null)
            {
                return(null);
            }

            var entity = await dbSet.FirstOrDefaultAsync(x => x.Id == id);

            if (entity == null)
            {
                return(null);
            }

            var entityDTO = mapper.Map <TDTO>(entity);

            patchDocument.ApplyTo(entityDTO);
            mapper.Map(entityDTO, entity);
            await context.SaveChangesAsync();

            return(entity);
        }