Exemplo n.º 1
0
        public async Task Test_HandlerAndStore_ShouldUploadImageAndMakePreview()
        {
            var uploadEvent = new UploadFilesEvent(new[] { FakeUpload });
            var mediator    = serviceProvider.GetRequiredService <IMediator>();

            await mediator.Publish(uploadEvent);

            var storage = serviceProvider.GetRequiredService <IStore <Guid, Upload, UploadResultRow> >();

            var storedOrigin = await storage.ReceiveAsync(FakeUpload.Id);

            var storedPReview = await storage.ReceiveAsync(FakeUpload.PreviewId);

            Assert.IsTrue(storedOrigin != null);
            Assert.AreEqual(storedOrigin.ContentType, FakeUpload.ContentType);
            Assert.AreEqual(storedOrigin.Id, FakeUpload.Id);
            Assert.AreEqual(storedOrigin.Name, FakeUpload.Name);
            Assert.IsTrue(storedOrigin.IsImage());

            Assert.IsTrue(storedPReview != null);
            Assert.AreEqual(storedPReview.ContentType, FakeUpload.ContentType);
            Assert.AreEqual(storedPReview.Id, FakeUpload.PreviewId);
            Assert.AreEqual(storedPReview.Name, Upload.PreviewPrefix + FakeUpload.Name);
            Assert.IsTrue(storedPReview.IsImage());
        }
        private async Task <IActionResult> UploadCoreAsync(Upload[] uploadedFiles, CancellationToken cancellationToken = default)
        {
            if (!uploadedFiles.Any())
            {
                return(NotFound());
            }

            var uploadCommand = new UploadFilesEvent(uploadedFiles);
            var receiveQuery  = new GetUploadedResultsQuery(uploadedFiles);

            await PublishAsync(uploadCommand, cancellationToken);

            var uploadResult = await SendAsync(receiveQuery, cancellationToken);

            return(Ok(uploadResult.Result.Select(x => new
            {
                number = x.Number,
                name = x.Name,
                fileId = x.Id,
                previewId = x.Preview?.Id
            }).ToArray()));
        }