public DbaseFileArchiveWriter(string filename, DbaseSchema schema, IReadOnlyCollection <DbaseRecord> records, Encoding encoding) { _filename = filename ?? throw new ArgumentNullException(nameof(filename)); _schema = schema ?? throw new ArgumentNullException(nameof(schema)); _records = records ?? throw new ArgumentNullException(nameof(records)); _encoding = encoding ?? throw new ArgumentNullException(nameof(encoding)); }
private static string Describe(DbaseSchema schema) { var builder = new StringBuilder(); var index = 0; foreach (var field in schema.Fields) { if (index > 0) { builder.Append(","); } builder.Append(field.Name.ToString()); builder.Append("["); builder.Append(field.FieldType.ToString()); builder.Append("("); builder.Append(field.Length.ToString()); builder.Append(","); builder.Append(field.DecimalCount.ToString()); builder.Append(")"); builder.Append("]"); index++; } return(builder.ToString()); }
public static FileError HasDbaseSchemaMismatch(this ZipArchiveEntry entry, DbaseSchema expectedSchema, DbaseSchema actualSchema) { return(new FileProblemBuilder(entry.Name).HasDbaseSchemaMismatch(expectedSchema, actualSchema)); }
public ZipArchiveDbaseEntryValidator(Encoding encoding, DbaseSchema schema, IZipArchiveDbaseRecordsValidator <TDbaseRecord> recordValidator) { _encoding = encoding ?? throw new ArgumentNullException(nameof(encoding)); _schema = schema ?? throw new ArgumentNullException(nameof(schema)); _recordValidator = recordValidator ?? throw new ArgumentNullException(nameof(recordValidator)); }
public static FileError HasDbaseSchemaMismatch(this IFileProblemBuilder builder, DbaseSchema expectedSchema, DbaseSchema actualSchema) { if (expectedSchema == null) { throw new ArgumentNullException(nameof(expectedSchema)); } if (actualSchema == null) { throw new ArgumentNullException(nameof(actualSchema)); } return(builder .Error(nameof(HasDbaseSchemaMismatch)) .WithParameters( new ProblemParameter("ExpectedSchema", Describe(expectedSchema)), new ProblemParameter("ActualSchema", Describe(actualSchema)) ) .Build()); }