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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
 public void TestSetup()
 {
     _designPattensFileManager    = new FileManager();
     _designPatternsTemplatesPath = _designPattensFileManager.GetDesignPatternsTemplatesPath().Result;
 }