using Pf2e.Scrapper.Processors.Definitions; namespace Pf2e.Scrapper.Helpers; /// /// Класс для отслеживания прогресса обработки данных. /// public class ProcessProgress : AbstractLogger { /// /// Прогресс обработки обработчиков . /// public ProgressItem Processors { get; } = new(); /// /// Прогресс работы конкретного обработчика . /// public ProgressItem Local { get; } = new(); /// /// Конструктор класса . /// public ProcessProgress() { Processors.Update += Update; Local.Update += Update; } /// /// Событие обновления /// private void Update() { ProgressUpdate?.Invoke(this); } /// /// Событие сообщения. /// /// Уровень сообщения. /// public override void Message(LogLevel level, string message) { ProgressMessage?.Invoke(this, level, message); } /// /// Событие завершения процесса. /// public void Complete() { ProgressComplete?.Invoke(this); } /// /// Делегат для события обновления прогресса. /// /// Объект, вызвавший событие. public delegate void ProgressUpdateDelegate(ProcessProgress sender); /// /// Событие обновления прогресса. /// public event ProgressUpdateDelegate? ProgressUpdate; /// /// Событие завершения процесса. /// public event ProgressUpdateDelegate? ProgressComplete; /// /// Делегат для события сообщения прогресса. /// /// Объект, вызвавший событие. /// Уровень сообщения. /// Сообщение. public delegate void ProgressMessageDelegate( ProcessProgress sender, LogLevel level, string message ); /// /// Событие сообщения. /// public event ProgressMessageDelegate? ProgressMessage; }