IRunningBackgroundTaskData
using PRTelegramBot.BackgroundTasks.Models;
namespace PRTelegramBot.BackgroundTasks.Interfaces
{
/// <summary>
/// Интерфейс данных запущенной задачи.
/// </summary>
public interface IRunningBackgroundTaskData
{
/// <summary>
/// Задача.
/// </summary>
Task Task { get; }
/// <summary>
/// Метаданные.
/// </summary>
IPRBackgroundTaskMetadata Metadata { get; }
/// <summary>
/// Ошибки
/// </summary>
IReadOnlyList<Exception> Errors { get; }
/// <summary>
/// Количество ошибок.
/// </summary>
int ErrorCount { get; }
/// <summary>
/// Количество выполнений
/// </summary>
int ExecutedCount { get; }
/// <summary>
/// Дата и время начала задачи.
/// </summary>
DateTime? StartDate { get; }
/// <summary>
/// Дата и время завершения задачи.
/// </summary>
DateTime? EndDate { get; }
/// <summary>
/// Статус задачи.
/// </summary>
PRTaskStatus Status { get; }
/// <summary>
/// Статус завершения задачи.
/// </summary>
PRTaskCompletionResult CompleteStatus { get; }
/// <summary>
/// Выполнить инкремент выполнения задачи.
/// </summary>
void IncrementExecutionCount();
/// <summary>
/// Добавить ошибку.
/// </summary>
/// <param name="ex">Исключение.</param>
void AddError(Exception ex);
/// <summary>
/// Установить статус задачи.
/// </summary>
/// <param name="status">Статус.</param>
void SetStatus(PRTaskStatus status);
/// <summary>
/// Установить статус завершения задачи.
/// </summary>
/// <param name="status">Статус.</param>
void SetCompleteStatus(PRTaskCompletionResult status);
/// <summary>
/// Запуск задачи.
/// </summary>
void StartTask();
/// <summary>
/// Завершение задачи.
/// </summary>
void EndTask();
/// <summary>
/// Исходник токена отмены.
/// </summary>
CancellationTokenSource CancellationTokenSource { get; }
}
}
Last updated