private void OnPageRetrieved(ITaskMonitor task, PageResult <TResult> result) { Contract.Requires(() => task != null); InternalLogger.Info("On page retrieved callback"); if (_isDisposed) { return; } lock (_syncRoot) { LastResult = result; InternalLogger.Info($"{result.Items.Count} items retrieved, total remote items is {result.TotalCount}"); if (_refreshRequested) { Reset(); } TotalRemoteCount = result.TotalCount; TotalCount = Math.Min(result.TotalCount, _maxItemCount); PageLoadedCount++; } _items.AddRange(result.Items); InternalLogger.Info($"{Items.Count} items in paginator collection, {PageLoadedCount} pages loaded"); Contract.Ensures(() => PageLoadedCount > 0); Contract.Ensures(() => result.Items != null && _maxItemCount >= 0); }
private void OnTaskCompleted(ITaskMonitor task) { InternalLogger.Info($"OnTaskCompleted( taskStatus: {task.Status} )"); if (_isDisposed) { return; } _onTaskCompleted?.Invoke(task); }
public static string StatisticsTracerFormatter(ITaskMonitor taskMonitor, TimeSpan taskExecutionTime) { var statisticsBuilder = new StringBuilder($"TaskMonitor|STATS|{Thread.CurrentThread.ManagedThreadId:000}|"); statisticsBuilder.Append(taskMonitor); statisticsBuilder.Append(", Executed in "); statisticsBuilder.Append(taskExecutionTime.TotalMilliseconds); statisticsBuilder.Append(" ms"); return(statisticsBuilder.ToString()); }
public TaskQueue(Task initialTask, ITaskMonitor taskMonitor) : this(initialTask) { _taskMonitor = taskMonitor; }
public static void DefaultStatisticsTracer(ITaskMonitor taskMonitor, TimeSpan taskExecutionTime) { Trace.WriteLine(StatisticsTracerFormatter(taskMonitor, taskExecutionTime)); }
public static string ExceptionTracerFormatter(ITaskMonitor taskMonitor, string message, Exception exception) => $"TaskMonitor|ERROR|{Thread.CurrentThread.ManagedThreadId:000}|{message}{Environment.NewLine}Exception:{exception}";
public static void DefaultExceptionTracer(ITaskMonitor taskMonitor, string message, Exception exception) { Trace.WriteLine(ExceptionTracerFormatter(taskMonitor, message, exception)); }