public SitemapFilter() { GenerateTable = false; //Have globals set at top instead of constructor or...? UseConsole = false; GenerateHyperlinks = false; ExcludeBefore = null; ErrorOutputFile = ""; _previousOutputFilePath = ""; _numShapes = 0; _currDepth = 0; _amountDownloaded = 0; _numRequests = 0; _root = new SDON.Model.Diagram(); _root.Template = "Sitemap"; _root.Version = "20"; SDON.Model.SymbolEntry parentSymbol = new SDON.Model.SymbolEntry(); parentSymbol.Name = "Parent"; parentSymbol.ID = new Guid("447105dc-fe46-4454-a35b-2317e422efd6"); SDON.Model.SymbolEntry leafSymbol = new SDON.Model.SymbolEntry(); leafSymbol.Name = "Leaf"; leafSymbol.ID = new Guid("831246c2-437a-429c-81a7-bb4064b2a73a"); _root.Symbols = new List <SDON.Model.SymbolEntry>(); _root.Symbols.Add(parentSymbol); _root.Symbols.Add(leafSymbol); _convTables = new ConvertLeavesToTables(_root, this); _convUri = new InsertURIToRoot(_root, MaxDepth, MaxShapes, this); }
public string ConvertSitemap(SitemapConverterOptions options) { string decodedSitemap; try { ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; SitemapXML.SitemapFilter filter = new SitemapXML.SitemapFilter(); filter.GenerateHyperlinks = (bool)options.Hyperlinks; filter.GenerateTable = (bool)options.Tables; filter.SortLexicographically = (bool)options.LexicographicOrder; filter.LoadSitemapFromURL(new Uri(options.Url)); filter.ConvertSitemap(); SDON.Model.Diagram diagram = filter.GetRoot(); decodedSitemap = SDON.SDONBuilder.ToJSON(diagram); } catch (Exception e) { WebOperationContext.Current.OutgoingResponse.StatusCode = (System.Net.HttpStatusCode) 418; return("Error parsing sitemap:\n" + e.Message); } return(decodedSitemap); }
public string ConvertSitemapFinal(Guid uploadID, SitemapConverterOptions options) { string decodedSitemap; try { System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(TempFileLocation + CurrPathSeparator + "tmp-sitemap-" + uploadID.ToString()); SitemapXML.SitemapFilter filter = new SitemapXML.SitemapFilter(); filter.GenerateHyperlinks = (bool)options.Hyperlinks; filter.GenerateTable = (bool)options.Tables; filter.SortLexicographically = (bool)options.LexicographicOrder; filter.LoadSitemapFromFile(dir.FullName + CurrPathSeparator + "sitemap.xml"); filter.ConvertSitemap(); SDON.Model.Diagram diagram = filter.GetRoot(); decodedSitemap = SDON.SDONBuilder.ToJSON(diagram); dir.Delete(true); } catch (Exception e) { WebOperationContext.Current.OutgoingResponse.StatusCode = System.Net.HttpStatusCode.InternalServerError; WebOperationContext.Current.OutgoingResponse.ContentType = "text/plain"; dumpTempFolder(uploadID); return("Error when converting sitemap: " + e.Message); } return(decodedSitemap); }
public string ConvertERD(string showColumns, string showTypes, System.IO.Stream csv) { string erd = ""; try { System.IO.MemoryStream ms = new System.IO.MemoryStream(); csv.CopyTo(ms); byte[] buff = ms.ToArray(); ERD.ERDFilter conv = new ERD.ERDFilter(); if (showColumns != null) { conv.ShowColumns = (showColumns != "0"); } if (showTypes != null) { conv.ShowDataTypes = (showTypes != "0"); } conv.LoadCSVFromString(UTF8Encoding.ASCII.GetString(buff)); SDON.Model.Diagram diagram = conv.ConvertDatabase(); erd = SDON.SDONBuilder.ToJSON(diagram); } catch (Exception e) { WebOperationContext.Current.OutgoingResponse.StatusCode = System.Net.HttpStatusCode.InternalServerError; return("Error occurred when trying to parse CSV:\n" + e.Message); } return(erd); }
public InsertURIToRoot(SDON.Model.Diagram root, int maxDepth, int maxShapes, SitemapFilter converter) { this._root = root; this._maxDepth = maxDepth; this._maxShapes = maxShapes; this._numShapes = 0; this._converter = converter; }
public ClassDiagramFilter() { _root = new SDON.Model.Diagram(); _root.Version = "20"; _root.Template = "Classdiagram"; _nodesOnTree = new List <EntryShape>(); _parser = new CtagsParser(); LinkGenerator = null; Userdata = null; MethodsInNote = false; PropertiesInNote = false; SignatureInNote = false; }
private string ReturnConvertedCtags(Guid uploadID, string hideMethods, string hideProperties) { System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(TempFileLocation + CurrPathSeparator + "tmp-" + uploadID.ToString()); ClassDiagram.ClassDiagramFilter filter = new ClassDiagram.ClassDiagramFilter(); filter.SignatureInNote = true; if (!((hideMethods == null) || (hideMethods == "0"))) { filter.MethodsInNote = true; } if (!((hideProperties == null) || (hideProperties == "0"))) { filter.PropertiesInNote = true; } filter.LoadFromCtagsFile(dir.FullName + CurrPathSeparator + "out.txt"); SDON.Model.Diagram diagram = filter.ConvertCtags(); dir.Delete(true); return(SDON.SDONBuilder.ToJSON(diagram)); }
private string ConvertCtagsGithubFile(Guid uploadID, ClassDiagramFilterServiceGithubUserdata ud, string hideMethods, string hideProperties) { if (isLocal) { debugOutput += "Ctags successful, running filter...\r\n"; } System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(TempFileLocation + CurrPathSeparator + "tmp-github-request-" + uploadID.ToString()); ClassDiagram.ClassDiagramFilter filter = new ClassDiagram.ClassDiagramFilter(); filter.SignatureInNote = true; if (!((hideMethods == null) || (hideMethods == "0"))) { filter.MethodsInNote = true; } if (!((hideProperties == null) || (hideProperties == "0"))) { filter.PropertiesInNote = true; } filter.LinkGenerator = GetLinkFromInfo; filter.Userdata = ud; filter.LoadFromCtagsFile(dir.FullName + CurrPathSeparator + "out.txt"); SDON.Model.Diagram diagram = filter.ConvertCtags(); if (isLocal) { debugOutput += "Filter successful\r\n"; } if (!isLocal) { dir.Delete(true); } return(SDON.SDONBuilder.ToJSON(diagram)); }
public ConvertLeavesToTables(SDON.Model.Diagram root, SitemapFilter converter) { this._converter = converter; this._root = root; }
private void generateDiagram(string catalog) { _root = new SDON.Model.Diagram(); _root.Version = "20"; _root.Template = "DatabaseERD"; _root.Shape = new SDON.Model.Shape(); _root.Shape.ShapeContainer = new SDON.Model.ShapeContainer(); _root.Shape.ShapeContainer.Arrangement = SDON.Model.ShapeArrangementTypes.Row; //double sqrtTables = Math.Sqrt((double)_tables.Count); //int numColumns = (int)Math.Ceiling(sqrtTables); //_root.Shape.ShapeContainer.Wrap = numColumns; if (catalog != null) { _root.Title = new SDON.Model.TitleShape(); _root.Title.Label = catalog; _root.Title.TextSize = 18; } //holy unused //_root.RootShape[0].Label = "ENTIRE DATABASE"; //SDON.Model.ShapeConnector connector; //SDON.Model.Shape shape; //SQLCSVLine line; //int i, j, destTable; //int tblX = 0, tblY = 0, dstX, dstY; //string startDirection, endDirection; // //for (i = 0; i < _tables.Count; i++) //{ // connector = new SDON.Model.ShapeConnector(); // shape = _tables[i].ExportAsShape(); // // // for (j = 0; j < _tables[i].GetEntryCount(); j++) // { // line = _tables[i].GetEntry(j); // // if (line.LINK_TABLE_NAME != "NULL") // { // destTable = findTable(line.LINK_TABLE_NAME); // dstY = destTable / numColumns; // dstX = destTable - (dstY * numColumns); // // startDirection = findStartDirection(tblX, tblY, dstX, dstY); // endDirection = returnOppositeDirection(startDirection); // // if (destTable >= 0) // { // //insertReturn(i, destTable, startDirection, endDirection); // } // } // } // // //connector.Shapes.Add(shape); // //_root.RootShape[0].ShapeConnector.Add(connector); // //_root.RootShape[0].ShapeContainer.Shapes.Add(shape); // tblX++; // if (tblX >= numColumns) // { // tblX = 0; // tblY++; // } //} ERDFormatter formatter = new ERDFormatter(); for (int i = 0; i < _tables.Count; i++) { formatter.InsertTable(_tables[i]); } formatter.Format(); _root.Shape = formatter.MakeDiagram(); _root.Returns = formatter.GetReturns(); }