public async Task <Guid> Handle(CreatePhotoCommand request, CancellationToken cancellationToken) { var user = await _userRepository.GetAsync(request.UserId); if (user == null) { throw new ResourceNotFoundException("User", request.UserId); } using var fileStream = request.File.OpenReadStream(); var cloudinaryUploadOptions = new CloudinaryUploadOptions { FileName = request.File.FileName, FileStream = fileStream }; var uploadResult = await _cloudinary.Upload(cloudinaryUploadOptions, cancellationToken); var newPhoto = new Photo( uploadResult.Url, uploadResult.PublicId, request.Description ); user.AddPhoto(newPhoto); await _userRepository.UpdateAsync(user); return(newPhoto.Id); }
public async Task <CloudinaryUploadResult> Upload(CloudinaryUploadOptions options, CancellationToken cancellationToken = default) { var uploadParams = new ImageUploadParams { File = new FileDescription(options.FileName, options.FileStream), Transformation = new Transformation().Width(500).Height(500).Crop("fill").Gravity("face") }; var result = await _cloudinary.UploadAsync(uploadParams); return(new CloudinaryUploadResult { Url = result.Uri.ToString(), PublicId = result.PublicId }); }