//public void MatchRow(object[] previousRowData, object[] updatedRowData) { // var defLength = DataDefinition.Length; // for (var updatedI = 0; updatedI <= updatedRowData.Length - defLength; ++updatedI) { // var matches = 0; // for (var i = 0; i < defLength; ++i) { // var prevColumn = i + DataDefinition.Index; // var upColumn = updatedI + i; // var prevVal = previousRowData[prevColumn]; // var upVal = updatedRowData[upColumn]; // if (Comparer.IsMatch(prevVal, upVal)) // ++matches; // } // if (matches <= 0) continue; // var c = matches / (double)defLength; // if (!_IndexMatchConfidence.ContainsKey(updatedI)) // _IndexMatchConfidence.Add(updatedI, new List<double>()); // _IndexMatchConfidence[updatedI].Add(c); // } // ++_RowMatchCount; //} public PositionedDataDefintion GetDefinition(int index) { PositionedDataDefintion newDef = DataDefinition.Clone(); newDef.Index = index; return(newDef); }
public override object Read(byte[] buffer, IDataRow row, int offset) { object baseVal = base.Read(buffer, row, offset); PositionedDataDefintion def = Definition; return(def != null?def.Convert(row, baseVal, Index) : baseVal); }
public void ResolveReferences(SheetDefinition sheetDef) { foreach (SheetLinkData link in _Links) { if (link.When != null) { PositionedDataDefintion keyDefinition = sheetDef.DataDefinitions .FirstOrDefault(d => d.InnerDefinition.GetName(0) == link.When.KeyColumnName); if (keyDefinition == null) { throw new InvalidOperationException($"Can't find conditional key column '{link.When.KeyColumnName}' in sheet '{sheetDef.Name}'"); } link.When.KeyColumnIndex = keyDefinition.Index; } } }
public DefinitionUpdater(SheetDefinition sheetDefinition, PositionedDataDefintion dataDefinition) { _SheetDefinition = sheetDefinition; DataDefinition = dataDefinition; }