コード例 #1
0
        private UdpCmdPacket ParseCommand(string returnData)
        {
            var obj = DocParser.ParsePacket(returnData);

            Console.WriteLine("****** Parse packet from {0} of type {1}", obj.Host, obj.DocType);
            return(obj);
        }
コード例 #2
0
        private Assembly GetNamespace(string file, bool bParseNamespace = true)
        {
            var parser   = new DocParser();
            var assembly = parser.Parse(file, bParseNamespace);

            assembly.FileName = file;
            return(assembly);
        }
コード例 #3
0
ファイル: Startup.cs プロジェクト: ntotten/netdoc
        public static async Task<string> ParseProjects(Configuration config)
        {
            var docParser = new DocParser();
            await docParser.Parse(config);

            var settings = new JsonSerializerSettings();
            settings.ContractResolver = new Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver();
            string json = JsonConvert.SerializeObject(docParser.Data, Formatting.Indented, settings);
            return json;
        }
コード例 #4
0
        public void Upload()
        {
            if (Request.Form.Files.Count <= 0)
            {
                return;
            }
            var file      = Request.Form.Files[0];
            var fullPath  = _fileService.SaveFile(file);
            var p         = new DocParser();
            var viewModel = p.Parse(fullPath);

            viewModel = _menuService.UpdateMenu(viewModel);
        }
コード例 #5
0
        private void GenerateFiles(string docsDirectory, string output)
        {
            DirectoryInfo docsDirectoryInfo = new DirectoryInfo(docsDirectory);

            if (docsDirectoryInfo.Attributes != FileAttributes.Directory)
            {
                Console.WriteLine("{0} is not a directory", docsDirectory);
                return;
            }

            foreach (FileSystemInfo docs in docsDirectoryInfo.GetFileSystemInfos())
            {
                if (docs.Extension != ".md")
                {
                    continue;
                }

                var fileName = docs.Name.Replace(docs.Extension, "");
                var content  = File.ReadAllText(docs.FullName);
                var docInfo  = DocParser.ParseDocs(content);
                var json     = JsonSerializer.Serialize(new DocsFile
                {
                    Order = docInfo.order,
                    Title = docInfo.title,
                    Html  = docInfo.html
                }, new JsonSerializerOptions()
                {
                    WriteIndented    = true,
                    IgnoreNullValues = true,
                    Encoder          = JavaScriptEncoder.UnsafeRelaxedJsonEscaping
                });

                var configFileDirectory = Path.Combine(Directory.GetCurrentDirectory(), output);
                if (!Directory.Exists(configFileDirectory))
                {
                    Directory.CreateDirectory(configFileDirectory);
                }

                var configFilePath = Path.Combine(configFileDirectory, $"{fileName}.json");

                if (File.Exists(configFilePath))
                {
                    File.Delete(configFilePath);
                }

                File.WriteAllText(configFilePath, json);
                Console.WriteLine("Generate demo file to {0}", configFilePath);
            }
        }
コード例 #6
0
ファイル: ParserTest.cs プロジェクト: ntotten/netdoc
        public async Task ParseTestProjectRuns()
        {
            var namespacesBegins = new string[]
            {
                            "TestProject"
            }.AsEnumerable();

            var path = @"..\..\..\TestProject\TestProject.csproj";
            var baseDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
            var projFile = Path.Combine(baseDir, path);
            var docParser = new DocParser();
            await docParser.Parse(projFile, namespacesBegins);
            Assert.IsNotNull(docParser.Data);
            Assert.IsTrue(docParser.Data.Namespaces.Count() > 0);
        }
コード例 #7
0
ファイル: ParserTest.cs プロジェクト: ntotten/netdoc
        public async Task ParseTestProjectRuns()
        {
            var namespacesBegins = new string[]
            {
                "TestProject"
            }.AsEnumerable();

            var path      = @"..\..\..\TestProject\TestProject.csproj";
            var baseDir   = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
            var projFile  = Path.Combine(baseDir, path);
            var docParser = new DocParser();
            await docParser.Parse(projFile, namespacesBegins);

            Assert.IsNotNull(docParser.Data);
            Assert.IsTrue(docParser.Data.Namespaces.Count() > 0);
        }
コード例 #8
0
        /// <summary>
        /// The PollDirectoryBus
        /// </summary>
        private async void PollDirectoryBus()
        {
            threadRunning = true;
            try
            {
                DirectoryBusGreeting dirServices;
                string url;
                using (var httpClient = new HttpClient())
                {
                    httpClient.DefaultRequestHeaders.Add("User-Agent", "Virtual Rig Bus Version 1");
                    while (true)
                    {
                        try
                        {
                            dirServices = DirGreetingList.Instance.First;
                            if (dirServices != null)
                            {
                                url = string.Format("http://{0}:{1}/api/Directory/V{2}/list", dirServices.Host, dirServices.TcpPort, dirServices.MaxVersion);
                                var response = await httpClient.GetStringAsync(new Uri(url));

                                var buses = DocParser.ParsePacket(response) as ActiveBuses;
                                ProcessBus(buses);
                            }
                        } catch (Exception e)
                        {
                            HamBusEnv.Logger.LogInformation($"parse1 {e.Message}");
                            //Console.WriteLine("dir get {0}", e.Message);
                        }
                        Thread.Sleep(HamBusEnv.SleepTimeMs);
                    }
                }
            }
            catch (Exception e)
            {
                HamBusEnv.Logger.LogInformation($"PollDirectoryBus {e.Message}");
                //Console.WriteLine("PollDirectoryBus exceptions: {0}", e.Message);
                threadRunning = false;
            }
        }
コード例 #9
0
        private IEnumerable <Dictionary <string, DemoMenuItem> > GetSubMenuList(DirectoryInfo directory, bool isDocs)
        {
            if (isDocs)
            {
                foreach (FileSystemInfo docItem in directory.GetFileSystemInfos())
                {
                    if (docItem.Extension != ".md")
                    {
                        continue;
                    }

                    string[] segments = docItem.Name.Split('.');
                    if (segments.Length != 3)
                    {
                        continue;
                    }

                    string language = segments[1];
                    string content  = File.ReadAllText(docItem.FullName);
                    Dictionary <string, string> docData = DocParser.ParseHeader(content);

                    yield return(new Dictionary <string, DemoMenuItem>()
                    {
コード例 #10
0
        private void GenerateFiles(string demoDirectory, string output)
        {
            DirectoryInfo demoDirectoryInfo = new DirectoryInfo(demoDirectory);

            if (demoDirectoryInfo.Attributes != FileAttributes.Directory)
            {
                Console.WriteLine("{0} is not a directory", demoDirectory);
                return;
            }

            IList <Dictionary <string, DemoComponent> > componentList = null;

            foreach (FileSystemInfo component in demoDirectoryInfo.GetFileSystemInfos())
            {
                if (!(component is DirectoryInfo componentDirectory))
                {
                    continue;
                }

                FileSystemInfo docDir  = componentDirectory.GetFileSystemInfos("doc")[0];
                FileSystemInfo demoDir = componentDirectory.GetFileSystemInfos("demo")[0];

                Dictionary <string, DemoComponent> componentDic = new Dictionary <string, DemoComponent>();

                foreach (FileSystemInfo docItem in (docDir as DirectoryInfo).GetFileSystemInfos())
                {
                    string language = docItem.Name.Replace("index.", "").Replace(docItem.Extension, "");
                    string content  = File.ReadAllText(docItem.FullName);
                    (Dictionary <string, string> Meta, string Content)docData = DocParser.ParseDemoDoc(content);

                    componentDic.Add(language, new DemoComponent()
                    {
                        Title    = docData.Meta["title"],
                        SubTitle = docData.Meta.TryGetValue("subtitle", out string subtitle) ? subtitle : null,
                        Type     = docData.Meta["type"],
                        Doc      = docData.Content
                    });
コード例 #11
0
ファイル: PythonClass.cs プロジェクト: Plenituz/CSharp2Py
        public PythonClass(Type type, XDocument xmlDoc = null)
        {
            if (xmlDoc != null)
            {
                this.xmlDoc = new DocParser(xmlDoc);
            }
            className = type;
            ctr       = new PythonConstructor(this);
            if (type.BaseType != null)
            {
                parentClasses.Add(type.BaseType);
            }
            parentClasses.AddRange(type.GetInterfaces());

            foreach (MemberInfo member in type.GetMembers(BindingFlags.Static | BindingFlags.Public | BindingFlags.DeclaredOnly))
            {
                Add(member, true);
            }

            foreach (MemberInfo member in type.GetMembers(BindingFlags.Instance | BindingFlags.Public | BindingFlags.DeclaredOnly))
            {
                Add(member, false);
            }
        }
コード例 #12
0
        private void GenerateFiles(string demoDirectory, string docsDirectory, string output)
        {
            DirectoryInfo demoDirectoryInfo = new DirectoryInfo(demoDirectory);

            if (demoDirectoryInfo.Attributes != FileAttributes.Directory)
            {
                Console.WriteLine("{0} is not a directory", demoDirectory);
                return;
            }

            DirectoryInfo docsDirectoryInfo = new DirectoryInfo(docsDirectory);

            if (docsDirectoryInfo.Attributes != FileAttributes.Directory)
            {
                Console.WriteLine("{0} is not a directory", docsDirectory);
                return;
            }

            IList <Dictionary <string, DemoComponent> > componentList = null;

            IList <Dictionary <string, MenuItem> > menuList = null;

            Dictionary <string, int> sortMap = new Dictionary <string, int>()
            {
                ["General"]      = 0,
                ["通用"]           = 0,
                ["Layout"]       = 1,
                ["布局"]           = 1,
                ["Navigation"]   = 2,
                ["导航"]           = 2,
                ["Data Entry"]   = 3,
                ["数据录入"]         = 3,
                ["Data Display"] = 4,
                ["数据展示"]         = 4,
                ["Feedback"]     = 5,
                ["反馈"]           = 5,
                ["Localization"] = 6,
                ["Other"]        = 7,
                ["其他"]           = 7
            };

            foreach (FileSystemInfo component in demoDirectoryInfo.GetFileSystemInfos())
            {
                if (!(component is DirectoryInfo componentDirectory))
                {
                    continue;
                }

                Dictionary <string, DemoComponent> componentDic = new Dictionary <string, DemoComponent>();

                FileSystemInfo docDir = componentDirectory.GetFileSystemInfos("doc")[0];

                foreach (FileSystemInfo docItem in (docDir as DirectoryInfo).GetFileSystemInfos())
                {
                    string language = docItem.Name.Replace("index.", "").Replace(docItem.Extension, "");
                    string content  = File.ReadAllText(docItem.FullName);
                    (Dictionary <string, string> Meta, string Content)docData = DocParser.ParseDemoDoc(content);

                    componentDic.Add(language, new DemoComponent()
                    {
                        Title    = docData.Meta["title"],
                        SubTitle = docData.Meta.TryGetValue("subtitle", out string subtitle) ? subtitle : null,
                        Type     = docData.Meta["type"],
                        Doc      = docData.Content,
                    });
コード例 #13
0
        private void GenerateFiles(string demoDirectory, string output)
        {
            DirectoryInfo demoDirectoryInfo = new DirectoryInfo(demoDirectory);

            if (!demoDirectoryInfo.Attributes.HasFlag(FileAttributes.Directory))
            {
                Console.WriteLine("{0} is not a directory", demoDirectory);
                return;
            }

            IList <Dictionary <string, DemoComponent> > componentList = null;
            IList <string> demoTypes = null;

            var directories = demoDirectoryInfo.GetFileSystemInfos()
                              .SelectMany(x => (x as DirectoryInfo).GetFileSystemInfos());

            foreach (FileSystemInfo component in directories)
            {
                if (!(component is DirectoryInfo componentDirectory))
                {
                    continue;
                }

                FileSystemInfo docDir  = componentDirectory.GetFileSystemInfos("doc")?.FirstOrDefault();
                FileSystemInfo demoDir = componentDirectory.GetFileSystemInfos("demo")?.FirstOrDefault();

                Dictionary <string, DemoComponent> componentDic = new Dictionary <string, DemoComponent>();

                if (docDir != null && docDir.Exists)
                {
                    foreach (FileSystemInfo docItem in (docDir as DirectoryInfo).GetFileSystemInfos())
                    {
                        string language = docItem.Name.Replace("index.", "").Replace(docItem.Extension, "");
                        string content  = File.ReadAllText(docItem.FullName);
                        (Dictionary <string, string> Meta, string desc, string apiDoc)docData = DocParser.ParseDemoDoc(content);

                        componentDic.Add(language, new DemoComponent()
                        {
                            Title    = docData.Meta["title"],
                            SubTitle = docData.Meta.TryGetValue("subtitle", out string subtitle) ? subtitle : null,
                            Type     = docData.Meta["type"],
                            Desc     = docData.desc,
                            ApiDoc   = docData.apiDoc.Replace("<h2>API</h2>", $"<h2 id=\"API\"><span>API</span><a href=\"{language}/components/{docData.Meta["title"].ToLower()}#API\" class=\"anchor\">#</a></h2>"),
                            Cols     = docData.Meta.TryGetValue("cols", out var cols) ? int.Parse(cols) : (int?)null,
                            Cover    = docData.Meta.TryGetValue("cover", out var cover) ? cover : null,
                        });