internal void ReadFiles(OperationInterop interop) { if (Streams.Count == 0) { throw new InvalidOperationException("Не установлен входной файл"); } OnBeforeFileReading(); foreach (var stream in Streams) { // >>> interop.SetStatusText("Чтение файла " + stream.Key); interop.ThrowIfCancellationRequested(); // <<< ReadFile(stream.Key, stream.Value, interop); } OnAfterFileReading(); }
protected override void ExecuteExchange(OperationInterop interop) { // >>> interop.SetStatusText("Инициализация"); interop.ThrowIfCancellationRequested(); // <<< RaiseBeforeExecuteEvent(); // >>> interop.SetStatusText("Обработка параметров"); // <<< // >>> interop.SetStatusText("Чтение файлов"); interop.ThrowIfCancellationRequested(); interop.SetProgress(10); // <<< // Чтение файлов foreach (var formatter in Formatters) { formatter.ReadFiles(interop); } // >>> interop.SetStatusText("Обработка данных"); interop.ThrowIfCancellationRequested(); interop.SetProgress(50); // <<< // Before foreach (var formatter in Formatters) { formatter.OnBeforeFormatting(); } // Processing foreach (var formatter in Formatters) { interop.ThrowIfCancellationRequested(); var objectSpace = GetObjectSpace(); bool success = false; try { formatter.ProcessData(objectSpace, interop); success = true; } finally { CloseObjectSpace(objectSpace, success); } } // After foreach (var formatter in Formatters) { formatter.OnAfterFormatting(); } // >>> interop.SetStatusText("Постобработка"); interop.SetProgress(99); // <<< RaiseAfterExecuteEvent(); interop.SetProgress(100); }