public async Task TestScanResultCreateGet()
        {
            var result = await _resultService.CreateScanResult(null);

            Assert.NotNull(result.Id);

            await _resultService.UpdateScanResultForBackend(
                result.Id, "dummy", new ScanResultMessage
            {
                Duration = 100,
                Status   = ScanResultStatus.Succeeded,
                Threats  = new[] { "Test" }
            });

            result = await _resultService.GetScanResult(result.Id);

            Assert.NotNull(result.Id);
            Assert.That(result.Results, Contains.Key("dummy"));

            var dummyResult = result.Results["dummy"];

            Assert.IsTrue(dummyResult.Status == ScanResultStatus.Succeeded);
            Assert.AreEqual(dummyResult.Duration, 100);
            Assert.IsNotEmpty(dummyResult.Threats);
            Assert.That(dummyResult.Threats, Is.EquivalentTo(new[] { "Test" }));
        }
        public async Task <IActionResult> ScanFile(
            [Required][MaxFileSize] IFormFile file)
        {
            var result = await _scanResultService.CreateScanResult();

            string storedFileId;

            await using (var uploadFileStream = file.OpenReadStream())
            {
                storedFileId = await _scanResultService.StoreFile(file.FileName, uploadFileStream);
            }

            await _scanResultService.QueueUrlScan(result, Url.Action("Index", "Download", new { id = storedFileId },
                                                                     Request?.Scheme, Request?.Host.Value));

            return(CreatedAtAction("Index", "ScanResults", new { id = result.Id }, result));
        }
예제 #3
0
        public async Task <IActionResult> ScanFile(
            [Required][MaxFileSize] IFormFile file,
            [FromForm][IsHttpUrl(false)] string callbackUrl = null)
        {
            var result = await _scanResultService.CreateScanResult(
                string.IsNullOrEmpty(callbackUrl)?null : new Uri(callbackUrl));

            string storedFileId;

            await using (var uploadFileStream = file.OpenReadStream())
            {
                storedFileId = await _scanResultService.StoreFile(file.FileName, uploadFileStream);
            }

            await _scanResultService.QueueUrlScan(result, Url.Action("Index", "Download", new { id = storedFileId },
                                                                     Request?.Scheme, Request?.Host.Value));

            return(CreatedAtAction("Index", "ScanResults", new { id = result.Id }, result));
        }