public IActionResult UpdateBusiness(Guid id, [FromBody] BusinessForUpdateDto business) { if (business == null) { return(BadRequest()); } if (business.Name == business.Description) { ModelState.AddModelError(nameof(BusinessForUpdateDto), "The provided description should be different from title"); } if (!ModelState.IsValid) { return(new UnprocessableEntityObjectResult(ModelState)); } var businessFromRepo = _owpiniRepository.GetBusiness(id); if (businessFromRepo == null) { var businessToAdd = Mapper.Map <Business>(business); businessToAdd.Id = id; _owpiniRepository.AddBusiness(businessToAdd); if (!_owpiniRepository.Save()) { throw new Exception($"Upserting business {id} failed on save"); } var businessToReturn = Mapper.Map <BusinessDto>(businessToAdd); return(CreatedAtRoute("GetBusiness", new { id = businessToReturn.Id }, businessToReturn)); } Mapper.Map(business, businessFromRepo); _owpiniRepository.UpdateBusiness(businessFromRepo); if (!_owpiniRepository.Save()) { throw new Exception($"Updating business {id} failed on save"); } return(NoContent()); }
public async Task <IActionResult> UpdateBusiness(int id, BusinessForUpdateDto businessForUpdateDto) { var businessFromRepo = await _repo.GetBusiness(id); if (businessFromRepo.UserId != int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value)) { return(Unauthorized()); } _mapper.Map(businessForUpdateDto, businessFromRepo); if (await _repo.SaveAll()) { return(NoContent()); } throw new Exception($"Updating Business {id} failed to save"); }
public IActionResult PartiallyUpdateBusiness(Guid id, [FromBody] JsonPatchDocument <BusinessForUpdateDto> patchDoc) { if (patchDoc == null) { return(BadRequest()); } var businessFromRepo = _owpiniRepository.GetBusiness(id); if (businessFromRepo == null) { var businessDto = new BusinessForUpdateDto(); patchDoc.ApplyTo(businessDto, ModelState); if (businessDto.Description == businessDto.Name) { ModelState.AddModelError(nameof(BusinessForUpdateDto), "The provided description should be different from the name"); } TryValidateModel(businessDto); if (!ModelState.IsValid) { return(new UnprocessableEntityObjectResult(ModelState)); } var businessToAdd = Mapper.Map <Business>(businessDto); businessToAdd.Id = id; _owpiniRepository.AddBusiness(businessToAdd); if (!_owpiniRepository.Save()) { throw new Exception($"Upserting business {id} failed on save"); } var businessToReturn = Mapper.Map <BusinessDto>(businessToAdd); return(CreatedAtRoute("GetBusiness", new { id = businessToReturn.Id }, businessToReturn)); } var businessToPatch = Mapper.Map <BusinessForUpdateDto>(businessFromRepo); patchDoc.ApplyTo(businessToPatch, ModelState); if (businessToPatch.Description == businessToPatch.Name) { ModelState.AddModelError(nameof(BusinessForUpdateDto), "The provided description should be different than the name"); } TryValidateModel(businessToPatch); if (!ModelState.IsValid) { return(new UnprocessableEntityObjectResult(ModelState)); } Mapper.Map(businessToPatch, businessFromRepo); _owpiniRepository.UpdateBusiness(businessFromRepo); if (!_owpiniRepository.Save()) { throw new Exception($"Patching business {id} failed on save"); } return(NoContent()); }