public IActionResult UpdatePhotoForMember(int memberID, int photoID, PhotoUpdateDto photoToUpdate) { if (!_photoLibraryRepository.MemberExists(memberID)) { return(NotFound()); } var photoForMemberFromRepo = _photoLibraryRepository.GetPhoto(memberID, photoID); if (photoForMemberFromRepo == null) { var photoToAdd = _mapper.Map <Photo>(photoToUpdate); photoToAdd.ID = photoID; _photoLibraryRepository.AddPhoto(memberID, photoToAdd); _photoLibraryRepository.Save(); var photoToReturn = _mapper.Map <PhotoDto>(photoToAdd); return(CreatedAtRoute("GetPhotoForMember", new { memberID = memberID, photoID = photoToReturn.ID }, photoToReturn)); } // Order of events: // Map the entity to a photoUpdateDto // Apply changes to the Dto // Map the Dto back to an entity.... Automapper will take care of this for us... _mapper.Map(photoToUpdate, photoForMemberFromRepo); // From this moment on the entity already contains the updated fields! _photoLibraryRepository.UpdatePhoto(photoForMemberFromRepo); return(NoContent()); }
public async Task <int> UpdateMissionPhoto(PhotoUpdateDto updateObject, int photoId, string code) { var photo2bUpdated = await _context.MissionPhotos.FindAsync(photoId); photo2bUpdated.Category = updateObject.Category; photo2bUpdated.ImageCaption = updateObject.Caption; photo2bUpdated.UploadedBy = code; _context.MissionPhotos.Update(photo2bUpdated); var numberAffected = await _context.SaveChangesAsync(); return(numberAffected); }
public ActionResult UpdatePhoto(int id, PhotoUpdateDto photoUpdateDto) { var photoModel = _repository.GetPhotosByFamilyMember(id); if (photoModel == null) { return(NotFound()); } _mapper.Map(photoUpdateDto, photoModel); _repository.UpdatePhoto(photoModel); _repository.SaveChanges(); return(NoContent()); }
public ActionResult PartiallyUpdatePhotoForMember(int memberID, int photoID, JsonPatchDocument <PhotoUpdateDto> patchDocument) { if (!_photoLibraryRepository.MemberExists(memberID)) { return(NotFound()); } var photoForMemberFromRepo = _photoLibraryRepository.GetPhoto(memberID, photoID); if (photoForMemberFromRepo == null) { var newPhotoToInsert = new PhotoUpdateDto(); patchDocument.ApplyTo(newPhotoToInsert, ModelState); var photoToAdd = _mapper.Map <Photo>(newPhotoToInsert); // photoToAdd.ID = photoID; <<< don't need this. ID is an identity column if (!TryValidateModel(photoToAdd)) { return(ValidationProblem(ModelState)); } _photoLibraryRepository.AddPhoto(memberID, photoToAdd); _photoLibraryRepository.Save(); return(CreatedAtRoute("GetPhotoForMember", new { memberID = memberID, photoID = photoToAdd.ID }, photoForMemberFromRepo)); } var photoToPatch = _mapper.Map <PhotoUpdateDto>(photoForMemberFromRepo); patchDocument.ApplyTo(photoToPatch, ModelState); if (!TryValidateModel(photoToPatch)) { return(ValidationProblem(ModelState)); } _mapper.Map(photoToPatch, photoForMemberFromRepo); _photoLibraryRepository.UpdatePhoto(photoForMemberFromRepo); _photoLibraryRepository.Save(); return(NoContent()); }
public async Task <ActionResult> UpdateMissionPhoto(PhotoUpdateDto updateObject, int photoId) { if (!ModelState.IsValid) { _logger.LogError("In cphoto controller, update mission photo model not good"); return(BadRequest(ModelState)); } var user = await _userManager.GetUserAsync(User); var num = await _missionPhotosRepo.UpdateMissionPhoto(updateObject, photoId, user.CodeNr); if (num < 1) { _logger.LogError("In cphotos controller, update mission photo returned 0 from repo"); return(BadRequest("The photograph was not updated")); } var confirm = _confirm.ConfirmResponse(true, "A Mission has been updated successfully."); return(Ok(confirm)); }