Beispiel #1
0
        private ActionResult FindDoc(string module, string path)
        {
            var split   = path.Split('/');
            var section = split[0];
            var method  = split.Length > 1 ? split[1] : null;

            if (string.IsNullOrEmpty(method))
            {
                var sec = DocBuilderDocumentation.GetSection(module, section);
                if (sec == null)
                {
                    return(View("sectionnotfound"));
                }
                return(View("sectionpartial", sec));
            }
            else
            {
                var met = DocBuilderDocumentation.GetMethod(module, section, method);
                if (met == null)
                {
                    return(View("methodnotfound"));
                }
                return(View("methodpartial", met));
            }
        }
        protected void Application_BeginRequest(object sender, EventArgs e)
        {
            if (!initialized)
            {
                lock (locker)
                {
                    if (!initialized)
                    {
                        initialized = true;

                        try
                        {
                            //Register cache
                            CacheManifest.AddServerFolder(new HttpContextWrapper(HttpContext.Current), "~/content/img", "*.*");
                            CacheManifest.AddCached(new Uri("/", UriKind.Relative));
                            CacheManifest.AddCached(new Uri("/portals/basic", UriKind.Relative));
                            CacheManifest.AddCached(new Uri("/portals/auth", UriKind.Relative));
                            CacheManifest.AddCached(new Uri("/portals/faq", UriKind.Relative));
                            CacheManifest.AddCached(new Uri("/portals/filters", UriKind.Relative));
                            CacheManifest.AddCached(new Uri("/portals/batch", UriKind.Relative));
                            CacheManifest.AddOnline(new Uri("/portals/search", UriKind.Relative));
                            CacheManifest.AddFallback(new Uri("/portals/search", UriKind.Relative), new Uri("/portals/notfound", UriKind.Relative));
                        }
                        catch (Exception error)
                        {
                            LogManager.GetLogger("ASC.Api").Error(error);
                        }

                        try
                        {
                            Documentation.Load();
                        }
                        catch (Exception error)
                        {
                            LogManager.GetLogger("ASC.Api").Error(error);
                        }

                        try
                        {
                            DocBuilderDocumentation.Load();
                        }
                        catch (Exception error)
                        {
                            LogManager.GetLogger("ASC.DocumentBuilder").Error(error);
                        }
                    }
                }
            }
        }
Beispiel #3
0
        public ActionResult Search(string query)
        {
            var result = new List <SearchResult>();

            foreach (var action in _actionMap)
            {
                var actionString = action.ToLower();
                var doc          = new HtmlDocument();
                try
                {
                    var html = this.RenderView(actionString, new ViewDataDictionary());
                    doc.LoadHtml(html);
                }
                catch (Exception e)
                {
                    LogManager.GetLogger("ASC.Api").Error(e);
                }
                var content = doc.DocumentNode;
                if (content.SelectSingleNode("html") != null)
                {
                    content = content.SelectSingleNode("//div[contains(@class, 'layout-content')]");
                }

                if (!string.IsNullOrEmpty(query) && content != null && content.InnerText.ToLowerInvariant().Contains(query.ToLowerInvariant()))
                {
                    var headerNode = doc.DocumentNode.SelectSingleNode("//span[@class='hdr']");
                    var descrNode  = doc.DocumentNode.SelectSingleNode("//p[@class='dscr']");
                    var header     = headerNode != null ? headerNode.InnerText : string.Empty;
                    var descr      = descrNode != null ? descrNode.InnerText : string.Empty;
                    result.Add(new SearchResult
                    {
                        Module      = "docbuilder",
                        Name        = actionString,
                        Resource    = Highliter.HighliteString(header, query).ToHtmlString(),
                        Description = Highliter.HighliteString(descr, query).ToHtmlString(),
                        Url         = Url.Action(actionString, "docbuilder")
                    });
                }
            }

            result.AddRange(DocBuilderDocumentation.Search(query, Url));

            ViewData["query"]  = query ?? string.Empty;
            ViewData["result"] = result;
            return(View(new Dictionary <MsDocEntryPoint, Dictionary <MsDocEntryPointMethod, string> >()));
        }
Beispiel #4
0
 public ActionResult Global()
 {
     return(View(DocBuilderDocumentation.GetGlobals()));
 }