public async Task <Result <ImageUploadResponse> > Handle(UpdateUserPictureCommand command, CancellationToken cancellationToken) { var user = await _unitOfWork.Users.FindAsync(command.UserId, cancellationToken); if (user !.Id != _currentUserId) { return(Result <ImageUploadResponse> .Forbidden()); } var blobName = string.Empty; if (string.IsNullOrEmpty(command.Data)) { await RemoveOriginalPicture(user.Picture, cancellationToken); user.Picture = null; } else { blobName = $"{await _randomIdGenerator.GenerateAsync(size: 15)}.jpg"; await _imageService.UploadImage(command.Data, AssetContainerConstants.USER_PICTURES, blobName, cancellationToken); await RemoveOriginalPicture(user.Picture, cancellationToken); user.Picture = blobName; } await _unitOfWork.SaveChangesAsync(cancellationToken); return(Result <ImageUploadResponse> .Success(new ImageUploadResponse { Url = MediaLinkConstants.USER_PICTURE + blobName })); }
public async Task <Result <ImageUploadResponse> > Handle(UpdateAudioPictureCommand command, CancellationToken cancellationToken) { _currentUserService.User.TryGetUserId(out var currentUserId); var audio = await _unitOfWork.Audios.FindAsync(command.AudioId, cancellationToken); if (audio == null) { return(Result <ImageUploadResponse> .NotFound <Audio>()); } if (audio.UserId != currentUserId) { return(Result <ImageUploadResponse> .Forbidden()); } var blobName = string.Empty; if (string.IsNullOrEmpty(command.Data)) { await RemoveOriginalPicture(audio.Picture, cancellationToken); audio.Picture = null; } else { blobName = $"{await _randomIdGenerator.GenerateAsync(size: 15)}.jpg"; await _imageService.UploadImage(command.Data, AssetContainerConstants.AUDIO_PICTURES, blobName, cancellationToken); await RemoveOriginalPicture(audio.Picture, cancellationToken); audio.Picture = blobName; } await _unitOfWork.SaveChangesAsync(cancellationToken); await _cache.RemoveAsync(CacheKeys.Audio.GetAudio(command.AudioId), cancellationToken); return(Result <ImageUploadResponse> .Success(new ImageUploadResponse { Url = MediaLinkConstants.AUDIO_PICTURE + blobName })); }