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); } } } } }
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> >())); }
public ActionResult Global() { return(View(DocBuilderDocumentation.GetGlobals())); }