private static void InitializeFileProcessorDefinition( FileProcessorDefinition fileProcessorDefinition, InputDefinitionFile.Models.InputDefinitionFile inputDefinitionFile, AggregateManager aggregateManager) { fileProcessorDefinition.CreateRowJsonEnabled = inputDefinitionFile.CreateRowJsonEnabled; fileProcessorDefinition.HeaderRowProcessorDefinition = LoadRowProcessorDefinition(inputDefinitionFile.Header, aggregateManager); fileProcessorDefinition.TrailerRowProcessorDefinition = LoadRowProcessorDefinition(inputDefinitionFile.Trailer, aggregateManager); InitializeRules(fileProcessorDefinition.HeaderRowProcessorDefinition.FieldProcessorDefinitions.SelectMany(a => a.Rules), aggregateManager.GetAggregates()); }
public static FileProcessorDefinition10 CreateFileProcessorDefinition(InputDefinitionFile10 inputDefinitionFile_10) { var aggregateManager = new AggregateManager(); var processorDefinition = new FileProcessorDefinition10(); InitializeFileProcessorDefinition(processorDefinition, inputDefinitionFile_10, aggregateManager); processorDefinition.DataRowProcessorDefinition = LoadRowProcessorDefinition(inputDefinitionFile_10.Data, aggregateManager); InitializeRules(processorDefinition.DataRowProcessorDefinition.FieldProcessorDefinitions.SelectMany(a => a.Rules), aggregateManager.GetAggregates()); InitializeRules(processorDefinition.TrailerRowProcessorDefinition.FieldProcessorDefinitions.SelectMany(a => a.Rules), aggregateManager.GetAggregates()); return(processorDefinition); }
public static FileProcessorDefinition20 CreateFileProcessorDefinition(InputDefinitionFile20 inputDefinitionFile_20) { var aggregateManager = new AggregateManager(); var processorDefinition = new FileProcessorDefinition20(); InitializeFileProcessorDefinition(processorDefinition, inputDefinitionFile_20, aggregateManager); processorDefinition.DataRowProcessorDefinitions = LoadRowProcessorDefinitions(inputDefinitionFile_20.Datas, aggregateManager); processorDefinition.KeyField = inputDefinitionFile_20.Datas.KeyField; processorDefinition.DataTypeField = inputDefinitionFile_20.Datas.DataTypeField; ResolveDataTypeField(processorDefinition); var fieldProcessorDefinitionsInDataRows = processorDefinition.DataRowProcessorDefinitions.SelectMany(a => a.Value.RowProcessorDefinition.FieldProcessorDefinitions); InitializeRules(fieldProcessorDefinitionsInDataRows.SelectMany(a => a.Rules), aggregateManager.GetAggregates()); InitializeRules(processorDefinition.TrailerRowProcessorDefinition.FieldProcessorDefinitions.SelectMany(a => a.Rules), aggregateManager.GetAggregates()); return(processorDefinition); }
private static IFieldAggregator CreateAggregator(AggregatorDefinition aggregatorDefinition, AggregateManager aggregateManager) { var aggregator = StoreManager.AggregatorStore.CreateObject(aggregatorDefinition.Aggregator); aggregator.Description = aggregatorDefinition.Description; aggregator.Name = aggregatorDefinition.Name; aggregator.Aggregate = aggregateManager.GetAggregateByName(aggregator.Name); return(aggregator); }
private static IFieldAggregator[] CreateAggregators(FieldDefinition fieldDefinition, AggregateManager aggregateManager) { var fieldAggregators = new List <IFieldAggregator>(); if (fieldDefinition.Aggregators?.Length > 0) { foreach (var aggregatorDefinition in fieldDefinition.Aggregators) { fieldAggregators.Add(CreateAggregator(aggregatorDefinition, aggregateManager)); } } return(fieldAggregators.ToArray()); }
private static FieldProcessorDefinition LoadFieldProcessorDefinition(FieldDefinition fieldDefinition, AggregateManager aggregateManager) { return(new FieldProcessorDefinition { FieldName = fieldDefinition.Name, Description = fieldDefinition.Description, Decoder = CreateDecoder(fieldDefinition), Rules = CreateRules(fieldDefinition), Aggregators = CreateAggregators(fieldDefinition, aggregateManager) }); }
private static RowProcessorDefinition LoadRowProcessorDefinition(RowDefinition rowDefinition, AggregateManager aggregateManager) { var fieldProcessorDefinitions = new List <FieldProcessorDefinition>(); if (rowDefinition != null) { foreach (var fieldDefinition in rowDefinition.Fields) { var fieldProcessorDefinition = LoadFieldProcessorDefinition(fieldDefinition, aggregateManager); fieldProcessorDefinitions.Add(fieldProcessorDefinition); } } return(new Models.RowProcessorDefinition { FieldProcessorDefinitions = fieldProcessorDefinitions.ToArray() }); }
private static Dictionary <string, DataRowProcessorDefinition> LoadRowProcessorDefinitions(Datas datasDefinitions, AggregateManager aggregateManager) { var result = new Dictionary <string, DataRowProcessorDefinition>(); foreach (var rowDefinition in datasDefinitions.Rows) { var fieldProcessorDefinitions = LoadRowProcessorDefinition(rowDefinition, aggregateManager); if (result.ContainsKey(rowDefinition.DataType)) { throw new InvalidOperationException($"DataType '{rowDefinition.DataType}' is duplicated"); } result[rowDefinition.DataType] = new DataRowProcessorDefinition { RowProcessorDefinition = fieldProcessorDefinitions }; } return(result); }