// // GET: /Cms/ public ActionResult Index(string url) { // Clean up the url parameter if (string.IsNullOrWhiteSpace(url)) { url = "home"; } else { url = url.ToLower().Trim('/'); if (url.EndsWith("/index")) { url = url.Substring(0, url.LastIndexOf("/")); } } // Check if we cached the page SitePage Page = DatabaseCache.GetSitePage(ControllerContext.RequestContext.HttpContext, url); if (Page == null) { string RequestDomain = Globals.GetRequestDomain(ControllerContext.RequestContext.HttpContext); using (XenonCMSContext DB = new XenonCMSContext()) { Page = DB.SitePages.SingleOrDefault(x => (x.Slug == url) && (x.Site.Domain == RequestDomain)); } DatabaseCache.AddSitePage(ControllerContext.RequestContext.HttpContext, Page); } // Ensure retrieved page is valid if (Page == null) { if (Globals.IsNewSite(ControllerContext.RequestContext.HttpContext)) { return(RedirectToAction("Install", "Cms")); } else { return(HttpNotFound()); } } else { ViewBag.Layout = Page.Layout; ViewBag.Title = Page.Title; ViewBag.ShowTitleOnPage = Page.ShowTitleOnPage; ViewBag.Html = Page.Html; ViewBag.DateLastUpdated = Page.DateLastUpdated; return(View()); } }