protected override async Task Handle(UploadFileCommand command, CancellationToken cancellationToken)
        {
            var validationRequest = new PlaylistAccessibilityValidationRequest()
            {
                PlaylistId = command.PlaylistId,
                UserId     = command.UserId
            };

            var result = await _mediator.Send(validationRequest, cancellationToken);

            if (!result.IsValid)
            {
                throw new ValidationException(result.InvalidityReason);
            }

            var fileName = $"{command.UserId}__{Guid.NewGuid()}";
            await _audioStorage.UploadUnprocessedAudioFileAsync(fileName, command.File);

            var audioConversionMessage = new AudioConversionMessage
            {
                FileName       = fileName,
                AdditionalData = new AudioUploadingAdditionalData
                {
                    UserId     = command.UserId,
                    PlaylistId = command.PlaylistId,
                    TrackName  = command.Name
                }
            };

            await _audioUploadingMessageBroker.SendAudioConversionRequest(audioConversionMessage);
        }
        protected override async Task Handle(UploadYoutubeCommand command, CancellationToken cancellationToken)
        {
            var validationRequest = new PlaylistAccessibilityValidationRequest()
            {
                PlaylistId = command.PlaylistId,
                UserId     = command.UserId
            };

            var result = await _mediator.Send(validationRequest, cancellationToken);

            if (!result.IsValid)
            {
                throw new ValidationException(result.InvalidityReason);
            }

            var youtubeConversionMessage = new YoutubeConversionMessage
            {
                VideoId        = command.VideoId,
                AdditionalData = new AudioUploadingAdditionalData
                {
                    UserId     = command.UserId,
                    PlaylistId = command.PlaylistId,
                    TrackName  = command.Name
                }
            };

            await _audioUploadingMessageBroker.SendYoutubeConversionRequest(youtubeConversionMessage);
        }