protected override void ParseFile(string filePath) { Logger.Info($"Parsing {filePath}"); var entity = Activator.CreateInstance <T>(); var metadata = new MetadataCollection { { MetadataKeys.SourceFile, filePath } }; ParsedEntitiesMetadata.Add(entity, metadata); try { using (TextReader reader = File.OpenText(filePath)) { var yaml = new YamlStream(); yaml.Load(reader); if (yaml.Documents.Count > 0) { var mapping = (YamlMappingNode)yaml.Documents[0].RootNode; SetValuesFromYamlMapping(mapping, typeof(T), entity); } OnEntityParsedFromFile(filePath, entity); } } catch (YamlDotNet.Core.YamlException ex) { throw new BuilderException($"Error parsing yaml for file {filePath}", ex); } }
public override void ParseDirectory(string directoryPath) { base.ParseDirectory(directoryPath); ProcessBasedOn(ParsedEntitiesMetadata.Where(t => !string.IsNullOrEmpty(t.Value.BasedOn)).ToList()); }