public async Task <IActionResult> UploadPostImage([FromForm] PostImageForCreationDto postImageForCreationDto) { // if(userId != int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value)) // return Unauthorized(); // var userFromRepo = await _repo.GetUser(userId); var file = postImageForCreationDto.File; var uploadResult = new ImageUploadResult(); if (file.Length > 0) { using (var stream = file.OpenReadStream()) { var uploadParams = new ImageUploadParams() { File = new FileDescription(file.Name, stream), Transformation = new Transformation().Width(500).Height(500).Crop("fill").Gravity("face") }; uploadResult = _cloudinary.Upload(uploadParams); } } postImageForCreationDto.Url = uploadResult.Uri.ToString(); postImageForCreationDto.PublicId = uploadResult.PublicId; var postImage = _mapper.Map <PostImage>(postImageForCreationDto); // if (!userFromRepo.Photos.Any(u=>u.IsMain)) // photo.IsMain = true; // postImage.PostId = 0; // userFromRepo.Photos.Add(photo); _repo.Add <PostImage>(postImage); if (await _repo.SaveAll()) { var postImageToReturn = _mapper.Map <PostImageForReturnDto>(postImage); return(CreatedAtRoute("GetPostImage", new { id = postImage.Id }, postImageToReturn)); } return(BadRequest("Failed to upload the post image.")); }
public async Task <IActionResult> AddImageForPost(int id, [FromForm] PostImageForCreationDto postImageForCreationDto) { var postFromRepo = await _repo.GetPost(id); var file = postImageForCreationDto.File; var uploadResult = new ImageUploadResult(); if (file.Length > 0) { using (var stream = file.OpenReadStream()) { var uploadParams = new ImageUploadParams() { File = new FileDescription(file.Name, stream), Transformation = new Transformation().Width(500).Height(500).Crop("fill").Gravity("face") }; uploadResult = _cloudinary.Upload(uploadParams); } } postImageForCreationDto.Url = uploadResult.Uri.ToString(); postImageForCreationDto.PublicId = uploadResult.PublicId; var postImage = _mapper.Map <PostImage>(postImageForCreationDto); if (!postFromRepo.PostImages.Any(u => u.IsMain)) { } // postImage.IsMain = true; postFromRepo.PostImages.Add(postImage); if (await _repo.SaveAll()) { var postImageToReturn = _mapper.Map <PostImageForReturnDto>(postImage); return(CreatedAtRoute("GetPostImage", new { id = postImage.Id }, postImageToReturn)); } return(BadRequest("Could not add the post image.")); }