public async Task <IEnumerable <ClassInformation> > BuildFromXml(String patternPath, Dictionary <string, string> parameters, Dictionary <string, List <String> > multipleObjects) { var files = new List <ClassInformation>(); var readDesignPattern = await _designPattensFileManager.ReadFile(patternPath, _designPattensFileManager.GetDesignPatternsTemplatesPath()); var doc = XDocument.Parse(readDesignPattern); foreach (var f in doc.Descendants("File")) { var type = f.Attribute("type"); if (type == null) { files.Add(CreateFile(f, parameters, multipleObjects)); } else if (type != null && type.Value == "Multiple") { var bind = f.Attribute("bind").Value; foreach (var obj in multipleObjects[bind]) { files.Add(CreateFile(f, parameters, bind, obj)); } } } return(files); }
public async Task <IEnumerable <DesignPatternFile> > UpdateDesignPatterns(bool forceUpdate = false) { var fileExists = await _fileManager.FileExistsInFolder("DesignPatternsList.dsxml", _fileManager.GetDesignPatternsTemplatesPath()); if (!fileExists || forceUpdate) { return(await UpdateDesignPatternsFile()); } var readFileXml = await _fileManager.ReadFile("DesignPatternsList.dsxml", _fileManager.GetDesignPatternsTemplatesPath()); var designPatternsXml = XDocument.Parse(readFileXml); var designPatternsXmlCount = designPatternsXml.Descendants("DesignPattern").Count(); var designPatternsFilesCount = await GetDesignPatternsFiles(); if (designPatternsFilesCount.Count() != designPatternsXmlCount) { return(await UpdateDesignPatternsFile()); } var dpList = new List <DesignPatternFile>(); var i = 0; foreach (var dp in designPatternsXml.Descendants("DesignPattern")) { dpList.Add(new DesignPatternFile() { Id = i, DesignPatternName = dp.Descendants("Name").FirstOrDefault().Value, DesignPatternType = dp.Attribute("type").Value, Description = dp.Descendants("Description").FirstOrDefault().Value.Trim(), Path = dp.Descendants("Name").FirstOrDefault().Value.Replace(" ", "") + ".xml" }); i++; } return(dpList); }