using System;
using System.Threading.Tasks;
using Hangfire;
using MalwareMultiScan.Shared.Message;
namespace MalwareMultiScan.Shared.Services.Interfaces
{
///
/// Scan background result job.
///
public interface IScanResultJob
{
///
/// Report job status.
///
/// Result id.
/// Backend id.
/// Scan result.
[AutomaticRetry(Attempts = 0, OnAttemptsExceeded = AttemptsExceededAction.Delete)]
Task Report(string resultId, string backendId, ScanResultMessage result);
///
/// Notify remote URL on scan result.
///
/// Base URL.
/// Result id.
/// Backend id.
/// Scan result.
[AutomaticRetry(Attempts = 0, OnAttemptsExceeded = AttemptsExceededAction.Delete)]
Task Notify(Uri uri, string resultId, string backendId, ScanResultMessage result);
}
}