public List<FieldDefinitionRecord> GetFieldRecords(TableDefinitionRecord record)
 {
     var results = new List<FieldDefinitionRecord>();
     for (var i = 0; i < KeyField.Length; i++)
     {
         results.Add(record.Fields[i]);
     }
     return results;
 }
Пример #2
0
 public virtual T Visit(TableDefinitionRecord record)
 {
     return(default(T));
 }
Пример #3
0
 public DataRecordVisitor(TableDefinitionRecord tableDefinition)
 {
     _tableDefinition = tableDefinition;
 }
Пример #4
0
 public List <DataRecord> GetDataRecords(TableDefinitionRecord tableDefinition)
 {
     return(Accept(new DataRecordVisitor(tableDefinition)));
 }
Пример #5
0
        private IEnumerable <(int recordNumber, IReadOnlyDictionary <string, TpsObject> nameValuePairs)> GatherMemoRecords(int table, TableDefinitionRecord tableDefinitionRecord, bool ignoreErrors)
        {
            return(Enumerable.Range(0, tableDefinitionRecord.Memos.Count())
                   .SelectMany(index =>
            {
                var definition = tableDefinitionRecord.Memos[index];
                var memoRecordsForIndex = TpsFile.GetMemoRecords(table, index, ignoreErrors);

                return memoRecordsForIndex.Select(record => (owner: record.Header.OwningRecord, name: definition.Name, value: record.GetValue(definition)));
            })
                   .GroupBy(pair => pair.owner, pair => (pair.name, pair.value))
                   .Select(groupedPair => (
                               groupedPair.Key,
                               (IReadOnlyDictionary <string, TpsObject>)groupedPair
                               .ToDictionary(pair => pair.name, pair => pair.value))));
        }
Пример #6
0
        private IEnumerable <(int recordNumber, IReadOnlyDictionary <string, TpsObject> nameValuePairs)> GatherDataRecords(int table, TableDefinitionRecord tableDefinitionRecord, bool ignoreErrors)
        {
            var dataRecords = TpsFile.GetDataRecords(table, tableDefinition: tableDefinitionRecord, ignoreErrors);

            return(dataRecords.Select(r => (r.RecordNumber, r.GetFieldValuePairs())));
        }