Esempio n. 1
0
        /// <summary>
        /// Parses a directory, looking for every config.cpp file
        /// </summary>
        /// <param name="directoryPath">The path of the folder</param>
        /// <param name="merge">Indicates whether the <see cref="Model"/>s will be merged into one.</param>
        /// <returns>The collection of models.</returns>
        public List <Model.Model> ParseDirectory(string directoryPath, bool merge = false)
        {
            if (!Directory.Exists(directoryPath))
            {
                throw new ArgumentException("The directory Specified does not exist.", "directoryPath");
            }

            var files = Directory.GetFiles(directoryPath, "config.cpp", SearchOption.AllDirectories);

            var result = new List <Model.Model>();

            foreach (var file in files)
            {
                var model = this.Parse(file);
                result.Add(model);
            }

            if (merge)
            {
                var mergedModel = new Model.Model();
                mergedModel.MergeFromListOfModels(result);

                return(new List <Model.Model> {
                    mergedModel
                });
            }

            return(result);
        }