using System; using System.IO; using System.Threading.Tasks; using MalwareMultiScan.Api.Data; using MalwareMultiScan.Shared.Message; namespace MalwareMultiScan.Api.Services.Interfaces { /// /// Scan result service. /// public interface IScanResultService { /// /// Create scan result. /// /// Optional callback URL. /// Scan result entry with id. Task CreateScanResult(Uri callbackUrl); /// /// Get scan result. /// /// Result id. /// Scan result entry with id. Task GetScanResult(string id); /// /// Update scan result entry. /// /// Result id. /// Backend id. /// Scan result. Task UpdateScanResultForBackend(string resultId, string backendId, ScanResultMessage result = null); /// /// Queue URL for scanning. /// /// Result entry. /// Remote URL. Task QueueUrlScan(ScanResult result, string fileUrl); /// /// Store file. /// /// File name. /// File stream. /// Unique file id. Task StoreFile(string fileName, Stream fileStream); /// /// Obtain file. /// /// Unique file id. /// Seekable file stream opened for reading. Task ObtainFile(string id); } }