public Package GetElementsByPackage(Path path) { EA.Package rootPackage = (EA.Package)_repository.Repository.Models.GetAt(0); EA.Package eaPackage = rootPackage.GetPackage(path); Package package = FromEaPackage(eaPackage, path); var file = FileNames.GetPackage(_folder, path); _jsonSerializer.Value.SerializeToFile(package, file.AbsolutePath); return(package); }
public bool IsValidDiagramPath(Path diagramPath, IFolder folder) { EA.Package rootPackage = (EA.Package)_repository.Repository.Models.GetAt(0); var packagePath = diagramPath.RemoveLast(); // remove diagram part EA.Package package = rootPackage.GetPackage(packagePath); var diagramName = diagramPath.Parts.Last(); bool Filter(EA.Diagram diagram) => diagram.Name.Equals(diagramName); EA.Diagram eaDiagram = package.Diagrams.Cast <EA.Diagram>().FirstOrDefault(Filter); return(eaDiagram == null); }
public File GetDiagramFile(Path diagramPath, IFolder folder) { EA.Package rootPackage = (EA.Package)_repository.Repository.Models.GetAt(0); var packagePath = diagramPath.RemoveLast(); // remove diagram part EA.Package package = rootPackage.GetPackage(packagePath); var diagramName = diagramPath.Parts.Last(); bool Filter(EA.Diagram diagram) => diagram.Name.Equals(diagramName); EA.Diagram eaDiagram = package.Diagrams.Cast <EA.Diagram>().FirstOrDefault(Filter); if (eaDiagram == null) { throw new ArgumentException($@"Could not find diagram with path [{diagramPath}]"); } var fileName = $@"{diagramPath}.png"; var project = _repository.Repository.GetProjectInterface(); var file = new File(folder, fileName); project.PutDiagramImageToFile(eaDiagram.DiagramGUID, file.AbsolutePath, 1); return(file); }