Пример #1
0
        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);
            }
        }
Пример #2
0
        public override void ParseDirectory(string directoryPath)
        {
            base.ParseDirectory(directoryPath);

            ProcessBasedOn(ParsedEntitiesMetadata.Where(t => !string.IsNullOrEmpty(t.Value.BasedOn)).ToList());
        }