public PageDefaultRouteViewModel DefaultRoute(ApiCall call) { PageDefaultRouteViewModel model = new PageDefaultRouteViewModel(); var startpages = call.WebSite.StartPages(); if (startpages != null && startpages.Count() > 0) { model.StartPage = startpages.First().Id; } var pagenotfound = WebSiteService.GetCustomErrorUrl(call.WebSite, 404); Guid PageNotFoundId = default(Guid); if (!string.IsNullOrEmpty(pagenotfound)) { if (!Guid.TryParse(pagenotfound, out PageNotFoundId)) { var DbPageNotFound = call.WebSite.SiteDb().Pages.GetByUrl(pagenotfound); if (DbPageNotFound != null) { PageNotFoundId = DbPageNotFound.Id; } } } var pageerror = WebSiteService.GetCustomErrorUrl(call.WebSite, 500); Guid PageErrorId = default(Guid); if (!string.IsNullOrEmpty(pageerror)) { if (!Guid.TryParse(pageerror, out PageErrorId)) { var DbPageError = call.WebSite.SiteDb().Pages.GetByUrl(pageerror); if (DbPageError != null) { PageErrorId = DbPageError.Id; } } } model.NotFound = PageNotFoundId; model.Error = PageErrorId; return(model); }
public void DefaultRouteUpdate(ApiCall call) { PageDefaultRouteViewModel model = call.Context.Request.Model as PageDefaultRouteViewModel; var sitedb = call.WebSite.SiteDb(); var website = call.WebSite; if (model.StartPage != default(Guid)) { var startpage = sitedb.Pages.Get(model.StartPage); startpage.DefaultStart = true; var allstartpages = sitedb.WebSite.StartPages(); foreach (var item in allstartpages) { if (item.Id != startpage.Id) { item.DefaultStart = false; sitedb.Pages.AddOrUpdate(item); } } sitedb.Pages.AddOrUpdate(startpage); } if (model.NotFound != default(Guid)) { website.CustomErrors[404] = model.NotFound.ToString(); } else { website.CustomErrors.Remove(404); } if (model.Error != default(Guid)) { website.CustomErrors[500] = model.Error.ToString(); } else { website.CustomErrors.Remove(500); } Data.GlobalDb.WebSites.AddOrUpdate(website); }