Beispiel #1
0
 /// <summary>
 /// Parses the given values assuming that they are in the same order as the column definitions.
 /// </summary>
 /// <param name="context">The metadata for the current record being processed.</param>
 /// <param name="values">The values to parse.</param>
 /// <returns>The parsed objects.</returns>
 internal object[] ParseValues(IRecoverableRecordContext context, string[] values)
 {
     object[] parsedValues = new object[ColumnDefinitions.PhysicalCount];
     for (int columnIndex = 0, sourceIndex = 0, destinationIndex = 0; columnIndex != ColumnDefinitions.Count; ++columnIndex)
     {
         var definition = ColumnDefinitions[columnIndex];
         if (definition is IMetadataColumn)
         {
             var columnContext = GetColumnContext(context, columnIndex, destinationIndex);
             var metadata      = ParseWithContext(columnContext, null);
             parsedValues[destinationIndex] = metadata;
             ++destinationIndex;
         }
         else if (!definition.IsIgnored)
         {
             var rawValue    = values[sourceIndex];
             var parsedValue = ParseValue(context, columnIndex, destinationIndex, rawValue);
             parsedValues[destinationIndex] = parsedValue;
             ++sourceIndex;
             ++destinationIndex;
         }
         else
         {
             ++sourceIndex;
         }
     }
     return(parsedValues);
 }
Beispiel #2
0
 /// <summary>
 /// Formats the given values assuming that they are in the same order as the column definitions.
 /// </summary>
 /// <param name="context">The metadata for the record currently being processed.</param>
 /// <param name="values">The values to format.</param>
 /// <returns>The formatted values.</returns>
 internal string[] FormatValues(IRecoverableRecordContext context, object[] values)
 {
     string[] formattedValues = new string[ColumnDefinitions.Count];
     for (int columnIndex = 0, valueIndex = 0; columnIndex != ColumnDefinitions.Count; ++columnIndex)
     {
         IColumnDefinition definition = ColumnDefinitions[columnIndex];
         if (definition is IMetadataColumn)
         {
             var columnContext  = GetColumnContext(context, columnIndex, valueIndex);
             var formattedValue = FormatWithContext(columnContext, null);
             formattedValues[columnIndex] = formattedValue;
             ++valueIndex;
         }
         else if (!definition.IsIgnored)
         {
             var value          = values[valueIndex];
             var formattedValue = FormatValue(context, columnIndex, valueIndex, value);
             formattedValues[columnIndex] = formattedValue;
             ++valueIndex;
         }
         else
         {
             var formattedValue = FormatValue(context, columnIndex, -1, null);
             formattedValues[columnIndex] = formattedValue;
         }
     }
     return(formattedValues);
 }
Beispiel #3
0
        private object ParseValue(IRecoverableRecordContext context, int columnIndex, int destinationIndex, string rawValue)
        {
            var isContextDisabled = context.ExecutionContext.Options.IsColumnContextDisabled;

            if (isContextDisabled)
            {
                var definition = ColumnDefinitions[columnIndex];
                return(ParseWithoutContext(definition, destinationIndex, rawValue));
            }
            else
            {
                var columnContext = GetColumnContext(context, columnIndex, destinationIndex);
                return(ParseWithContext(columnContext, rawValue));
            }
        }
Beispiel #4
0
        private string FormatValue(IRecoverableRecordContext context, int columnIndex, int valueIndex, object value)
        {
            var isContextDisabled = context.ExecutionContext.Options.IsColumnContextDisabled;

            if (isContextDisabled)
            {
                var definition = ColumnDefinitions[columnIndex];
                return(FormatWithoutContext(definition, valueIndex, value));
            }
            else
            {
                var columnContext = GetColumnContext(context, columnIndex, valueIndex);
                return(FormatWithContext(columnContext, value));
            }
        }