Ejemplo n.º 1
0
        public IEnumerable <Path> GetDiagramPaths(Path packagePath)
        {
            if (_diagramPathsByPackagePath.ContainsKey(packagePath))
            {
                return(_diagramPathsByPackagePath[packagePath]);
            }
            File file = FileNames.GetDiagramPathsByPackage(_folder, packagePath);

            if (file.Exists())
            {
                var diagramPathList = _jsonSerializer.Value.DeserializeFromFile <PathList>(file.AbsolutePath);
                return(_diagramPathsByPackagePath[packagePath] = diagramPathList.Paths.Select(p => new Path(p)));
            }
            return(null);
        }
Ejemplo n.º 2
0
        //private List<Package> GetChildPackages(Path packagePath, EA.Package package, List<Package> packages = null)
        //{
        //	packages = packages ?? new List<Package>();
        //	if (package == null)
        //	{
        //		return packages;
        //	}
        //	foreach (var childPackage in package.Packages.OfType<EA.Package>())
        //	{
        //		var childPath = packagePath.CreateChild(childPackage.Name);
        //		var cp = FromEaPackage(childPackage,)
        //	}
        //	return package;
        //}

        // TODO: support recursive
        public IEnumerable <Path> GetDiagramPaths(Path packagePath)
        {
            EA.Package package = GetPackage(packagePath);
            var        paths   = new List <Path>();

            foreach (var diagram in package.Diagrams.Cast <EA.Diagram>())
            {
                var path = packagePath.CreateChild(diagram.Name);
                paths.Add(path);
            }
            var file     = FileNames.GetDiagramPathsByPackage(_folder, packagePath);
            var pathList = new PathList {
                Paths = paths.Select(p => p.ToString()).ToList()
            };

            _jsonSerializer.Value.SerializeToFile(pathList, file.AbsolutePath);
            return(paths);
        }