private void AppendExpression(CsvHeaders <TEntity> csvHeaders, UnaryExpression unaryExpression) { switch (unaryExpression.NodeType) { case ExpressionType.Convert: Append(csvHeaders, unaryExpression.Operand); break; default: throw new ArgumentException($"Expression type {unaryExpression.NodeType} not supported."); } ; }
private void AppendExpression(CsvHeaders <TEntity> csvHeaders, NewExpression newExpression) { switch (newExpression.NodeType) { case ExpressionType.New: foreach (MemberExpression memberExpression in newExpression.Arguments) { AppendExpression(csvHeaders, memberExpression); } break; default: throw new ArgumentException($"Expression type {newExpression.NodeType} not supported."); } ; }
private void AppendExpression(CsvHeaders <TEntity> csvHeaders, MemberExpression expression) { if (expression.Expression.NodeType == ExpressionType.Parameter) { var memberInfo = expression.Member; var headerAttr = memberInfo.GetCustomAttribute <CsvHeaderAttribute>(); if (headerAttr != null) { csvHeaders.Add(headerAttr.Name); } else { csvHeaders.Add(memberInfo.Name); } } else { Append(csvHeaders, expression.Expression); } }
/// <summary> /// Initializes a new instance of the <see cref="CsvTableReader"/> class. /// </summary> /// <param name="csvReader">The <see cref="CsvReader"/> as source</param> /// <param name="csvConverterResolver">Your own implementation of a value converter resolver</param> /// <param name="csvHeaders">List of csv headers</param> public CsvTableReader(CsvReader csvReader, ICsvConverterResolver csvConverterResolver, CsvHeaders csvHeaders) : base(csvHeaders, csvConverterResolver) { _csvReader = csvReader; }
/// <summary> /// Initializes a new instance of the <see cref="CsvTableReader"/> class. /// </summary> /// <param name="csvReader">The <see cref="CsvReader"/> as source</param> /// <param name="csvHeaders">List of csv headers</param> public CsvTableReader(CsvReader csvReader, CsvHeaders csvHeaders) : base(csvHeaders) { _csvReader = csvReader; }
/// <summary> /// Initializes a new instance of the <see cref="CsvTableWriter"/> class. /// </summary> /// <param name="csvWriter">The <see cref="CsvWriter"/> as source</param> /// <param name="csvHeaders">List of csv headers</param> public CsvTableWriter(CsvWriter csvWriter, CsvHeaders csvHeaders) : base(csvHeaders) { _csvWriter = csvWriter; }
private void AppendExpression(CsvHeaders <TEntity> csvHeaders, Expression expression) { throw new ArgumentException($"Expression type {expression.NodeType} not supported."); }
public void Append(CsvHeaders <TEntity> csvHeaders, Expression expression) { AppendExpression(csvHeaders, (dynamic)expression); }
/// <summary> /// Initializes a new instance of the <see cref="CsvLineTableWriter"/> class. /// </summary> /// <param name="csvLineBuilder">The <see cref="CsvLineBuilder"/> as string generator</param> /// <param name="csvConverterResolver">Your own implementation of a value converter resolver</param> /// <param name="csvHeaders">List of csv headers</param> public CsvLineTableWriter(CsvLineBuilder csvLineBuilder, ICsvConverterResolver csvConverterResolver, CsvHeaders csvHeaders) : base(csvHeaders, csvConverterResolver) { _csvLineBuilder = csvLineBuilder; Array.Resize(ref _csvValues, csvHeaders.Count()); }
/// <summary> /// Initializes a new instance of the <see cref="CsvLineTableReader"/> class. /// </summary> /// <param name="csvLineParser">The <see cref="CsvLineParser"/> as string parser</param> /// <param name="csvHeaders">List of csv headers</param> public CsvLineTableReader(CsvLineParser csvLineParser, CsvHeaders csvHeaders) : base(csvHeaders) { _csvLineParser = csvLineParser; }