Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }