//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;
                }
            }
        }
Exemplo n.º 4
0
 public DefinitionUpdater(SheetDefinition sheetDefinition, PositionedDataDefintion dataDefinition)
 {
     _SheetDefinition = sheetDefinition;
     DataDefinition   = dataDefinition;
 }