예제 #1
0
        protected override async Task <TrainingVideoReadModel> ProcessAsync(TrainingVideoGetCommand <Guid> message,
                                                                            CancellationToken cancellationToken)
        {
            var search = Query <TrainingVideoPic> .Create(x => x.Stream_id == message.Id);

            var query   = new SingleQuery <TrainingVideoPic>(search);
            var command = new EntitySingleQuery <TrainingVideoPic, TrainingVideoReadModel>(query);
            var result  = await Mediator.Send(command, cancellationToken).ConfigureAwait(false);

            return(result.Data);
        }
        public async Task <IActionResult> GetTrainingVideosById(CancellationToken cancellationToken, Guid fileId)
        {
            var memory  = new MemoryStream();
            var command = new TrainingVideoGetCommand <Guid>(fileId);
            var result  = await Mediator.Send(command, cancellationToken).ConfigureAwait(false);

            using (var stream = new FileStream(result.Path, FileMode.Open))
            {
                await stream.CopyToAsync(memory);
            }
            memory.Position = 0;
            return(File(memory, GetContentType(result.Path), Path.GetFileName(result.Path)));
        }