private void RecordError(string errString) { TableError err = new TableError(); err.LineNumber = LineNumber; err.Description = errString; TableErrors.Add(err); }
public void RepairTable(bool repairVolInconcictensy = false, bool Quiet = false) //исправление ошибок в таблице { TableErrors check = _checkTable(); //определение, что требуется исправить bool isSmthChanged = false; //флаг наличия исправлений в таблице if (!Quiet) { OnTableRepaired(new CTEventArgs(true, "Выполняется исправление таблицы " + CTid)); } do { switch (check) { case TableErrors.TableOK: if (!Quiet) { OnTableRepaired(new CTEventArgs(true, "\t\tошибки не обнаружены")); } break; case TableErrors.UnSorted: _sortTable(); isSmthChanged = true; if (!Quiet) { OnTableRepaired(new CTEventArgs(false, "\t\tтаблица отсортирована")); } break; case TableErrors.LevelInconsistency: _repairLevelInconsistency(); isSmthChanged = true; if (!Quiet) { OnTableRepaired(new CTEventArgs(false, "\t\tисправлена непоследовательность уровней")); } break; case TableErrors.VolumeInconsistency: if (repairVolInconcictensy) { _repairVolumeInconsistency(); isSmthChanged = true; if (!Quiet) { OnTableRepaired(new CTEventArgs(false, "\t\tисправлена непоследовательность объемов")); } } break; } check = _checkTable(); //определение, что требуется исправить //если исправлять непоследовательность объемов не надо и осталась только эта ошибка, прервем процесс восстановления if (check == TableErrors.VolumeInconsistency && !repairVolInconcictensy) { break; } } while (check != TableErrors.TableOK); //пока есть, что исправлять if (!Quiet) { if (isSmthChanged) { OnTableRepaired(new CTEventArgs(true, "\tвсе ошибки исправлены")); } else { OnTableRepaired(new CTEventArgs(true, "\tисправление таблицы не требуется")); } } }