public async Task <IActionResult> PutImage(int id, [FromBody] JsonPatchDocument <ImagePatchDTO> patchModel) { var user = await _userManager.GetUserAsync(HttpContext.User); if (user == null || (await _userManager.IsInRoleAsync(user, Role.Admin) == false)) { return(Unauthorized("Error updating image because of incorrect authority level.")); } try { Image image = await _context.Images.Where(x => x.ImageId == id).FirstOrDefaultAsync(); if (image == null) { return(NotFound()); } ImagePatchDTO imageDTO = ConvertToImagePatchDTO(image); patchModel.ApplyTo(imageDTO); image = MapToImage(imageDTO, image); _context.Images.Update(image); await _context.SaveChangesAsync(); return(new ObjectResult(ConvertToImageDTO(image))); } catch (Exception e) { } return(BadRequest("Error updating image")); }
private Image MapToImage(ImagePatchDTO imageDTO, Image image) { image.Active = imageDTO.Active; image.ByteImage = imageDTO.ByteImage != null?Convert.FromBase64String(imageDTO.ByteImage) : null; image.Path = imageDTO.Path; image.Type = imageDTO.Type; return(image); }
public SubmittedImage ApplyPatch(SubmittedImage submittedImage, ImagePatchDTO imagePatch) { submittedImage.Name = imagePatch.Name; if (imagePatch.Image != null) { submittedImage.Image = imagePatch.Image; } _images.Update(submittedImage); SaveChanges(); return(submittedImage); }
public ActionResult <SubmittedImage> ChangeImageSpecificProperties(int id, ImagePatchDTO imagePatch) { if (imagePatch == null) { return(BadRequest("please insert information")); } if (_imageRepository.GetById(id) == null) { return(NotFound()); } SubmittedImage currentImage = _imageRepository.GetById(id); return(_imageRepository.ApplyPatch(currentImage, imagePatch)); }
public async Task <ActionResult <ImagePatchDTO> > PostImage(ImagePatchDTO imageDTO) { var user = await _userManager.GetUserAsync(HttpContext.User); if (user == null || (await _userManager.IsInRoleAsync(user, Role.Admin) == false)) { return(Unauthorized("Error posting image because of incorrect authority level.")); } Image image = new Image(); image = MapToImage(imageDTO, image); _context.Images.Add(image); await _context.SaveChangesAsync(); return(CreatedAtAction("GetImage", new { id = image.ImageId }, ConvertToImageDTO(image))); }
public async Task PostImageTest() { ImagePatchDTO newImage = new ImagePatchDTO() { Path = "profile", ByteImage = Convert.ToBase64String(DbContent[0].ByteImage), Type = Order.ProductType.FOLT, Active = true }; var ImageResult = await ImagesController.PostImage(newImage); var NewImage = db.GetDbContext().Images.Find(DbContent.Count + 1); Assert.IsNotNull(NewImage); Assert.AreEqual(NewImage.ImageId, DbContent.Count + 1); Assert.AreEqual(NewImage.Path, "profile"); Assert.AreEqual(NewImage.Type, Order.ProductType.FOLT); Assert.AreEqual(NewImage.Active, true); }