public async Task <ResponseHandler> AddPhotoForUser(UserPhotoDto userPhotoDto) { var user = await _context.Users.Include(x => x.ProfilePicture).FirstOrDefaultAsync(x => x.Id == userPhotoDto.UserId); PhotoSettings settings = CloudinarySettings(); if (user.ProfilePicture != null) { await DeletePhoto(settings, user.ProfilePicture); } var photoModel = new PhotoModel(userPhotoDto.File) { Folder = "LMS/Members", Width = 500, Height = 500, Gravity = "face", Crop = "fill" }; var result = _photoLibrary.UploadPhoto(settings, photoModel); userPhotoDto.Url = result.Url; userPhotoDto.PublicId = result.PublicId; var photo = _mapper.Map <UserProfilePhoto>(userPhotoDto); user.ProfilePicture = photo; await _context.SaveChangesAsync(); var photoToreturn = _mapper.Map <PhotoForReturnDto>(photo); return(new ResponseHandler(photoToreturn, photo.Id)); }
public async Task <IActionResult> AddPhotoForUser([FromForm] UserPhotoDto userPhotoDto) { var result = await _photoService.AddPhotoForUser(userPhotoDto); if (result.IsSuccessful) { return(Ok(result.Result)); } //return CreatedAtAction("GetPhoto", new { id = photo.Id }, photo); return(BadRequest(result.Message)); }
public async Task <IActionResult> AddUserPhoto(int userid, [FromForm] UserPhotoDto uphoto) { if (userid != int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value)) { return(Unauthorized()); } var user = await _repo.GetUser(userid); var file = uphoto.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); } uphoto.Url = uploadResult.Uri.ToString(); uphoto.PublicId = uploadResult.PublicId; var photo = _mapper.Map <Photo>(uphoto); if (!user.Photos.Any(x => x.IsMain)) { photo.IsMain = true; } user.Photos.Add(photo); if (await _repo.SaveAll()) { var returnphoto = _mapper.Map <PhotoReturnDto>(photo); return(CreatedAtRoute("GetPhoto", new { userId = userid, id = photo.Id }, returnphoto)); } return(BadRequest("could not add the photo")); }