public int Reprocess(bool keepManualCommercialOverrides) { int result = 0; Log("Reprocessing."); var oldData = Data; var newData = new Data_info(); newData.Fields = oldData.Fields; newData.ManualCutFields = oldData.ManualCutFields; _data = newData; DetectThresholds(); result = FindBlackFields(); if (keepManualCommercialOverrides) { // Copy manual commercial overrides from old blocks to new blocks. if ((oldData.Blocks.Count > 0) && (newData.Blocks.Count > 0)) { int oldIndex = 0; int newIndex = 0; Block oldBlock = null; Block newBlock = null; while ((oldIndex < oldData.Blocks.Count) && (newIndex < newData.Blocks.Count)) { var oldBlockNext = oldData.Blocks[oldIndex]; var newBlockNext = newData.Blocks[newIndex]; if (oldBlockNext.StartFieldNumber < newBlockNext.StartFieldNumber) { oldIndex++; } else if (oldBlockNext.StartFieldNumber > newBlockNext.StartFieldNumber) { newIndex++; } else { if ((oldBlock != null) && (newBlock != null)) { newBlock.IsCommercialOverride = oldBlock.IsCommercialOverride; } oldBlock = oldBlockNext; newBlock = newBlockNext; oldIndex++; newIndex++; continue; } oldBlock = null; newBlock = null; } } } return(result); }
public Field Clone(Data_info container) { var f = new Field(container); foreach (var key in _values.Keys) { f._values[key] = _values[key]; } f.FieldNumber = FieldNumber; f.PTS = PTS; f.State = State; f.Invalid = Invalid; return(f); }
public Field(Data_info container) { _columnIds = container.ColumnIds; }