public async Task <IActionResult> SaveFile(IFormFile uploadedFile)
        {
            var stream = uploadedFile.OpenReadStream();

            return(await TryAsync(CommandAsync(SaveAudioCommand.CreateInstance(uploadedFile.FileName, stream)).Map(list => (IActionResult)Ok(list)))
                   .IfFail(exception => (IActionResult)BadRequest(exception.Message)));
        }
Exemple #2
0
 public Task <Unit> Handle(SaveAudioCommand request, CancellationToken cancellationToken)
 {
     return(_audioDxo.Map(request)
            .Bind(audio => _unitOfWork.AudioRepository.CreateAsync(audio))
            .Match(audio => audio.AsTask(), exception => exception.AsFailedTask <Audio>())
            .Bind(audio => _unitOfWork.Commit().ToUnit()));
     //.Bind(audio => _unitOfWork.AudioRepository.UploadStreamAsync(audio.Id, request.Stream).ToUnit())
     //.Bind(audio => _unitOfWork.Commit().ToUnit());
 }
Exemple #3
0
        public TryAsync <Audio> Map(SaveAudioCommand audioCommand)
        {
            var config = new MapperConfiguration(cfg =>
            {
                cfg.CreateMap <SaveAudioCommand, Audio>()
                .ForMember(audio => audio.Content, expression => expression.MapFrom(command => ReadToEnd(command.Stream)))
                .ForMember(audio => audio.CreatedOn, expression => expression.MapFrom(command => DateTimeOffset.Now));
            });

            var mapper = config.CreateMapper();

            return(TryAsync(() => mapper.Map <Audio>(audioCommand).AsTask()));
        }