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);
        }
Пример #4
0
        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));
        }
Пример #9
0
 public ConvertLeavesToTables(SDON.Model.Diagram root, SitemapFilter converter)
 {
     this._converter = converter;
     this._root      = root;
 }
Пример #10
0
        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();
        }