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())); }