示例#1
0
        public PagedListViewModel <ExternalResourceItemViewModel> External(ApiCall call)
        {
            var sitedb = call.WebSite.SiteDb();
            var pager  = ApiHelper.GetPager(call, 50);

            PagedListViewModel <ExternalResourceItemViewModel> result = new PagedListViewModel <ExternalResourceItemViewModel>();

            var alllinks = sitedb.ExternalResource.All();

            var total = alllinks.Count;

            result.TotalCount = total;
            result.TotalPages = ApiHelper.GetPageCount(total, pager.PageSize);
            result.PageNr     = pager.PageNr;

            List <ExternalResourceItemViewModel> list = new List <ExternalResourceItemViewModel>();

            var items = alllinks.OrderBy(o => o.Name).Skip(pager.SkipCount).Take(pager.PageSize);

            foreach (var item in items)
            {
                ExternalResourceItemViewModel model = new ExternalResourceItemViewModel();
                model.Id           = item.Id;
                model.FullUrl      = item.FullUrl;
                model.ResourceType = ConstTypeContainer.GetName(item.DestinationObjectType);
                model.LastModified = item.LastModified;

                model.Relations = Sites.Helper.RelationHelper.Sum(sitedb.ExternalResource.GetUsedBy(item.Id));

                list.Add(model);
            }
            result.List = list;

            return(result);
        }
示例#2
0
        public override List <object> List(ApiCall call)
        {
            List <ExternalResourceItemViewModel> result = new List <ExternalResourceItemViewModel>();
            var sitedb = call.WebSite.SiteDb();

            foreach (var item in sitedb.ExternalResource.All())
            {
                ExternalResourceItemViewModel model = new ExternalResourceItemViewModel();
                model.Id           = item.Id;
                model.FullUrl      = item.FullUrl;
                model.ResourceType = ConstTypeContainer.GetName(item.DestinationObjectType);
                model.LastModified = item.LastModified;

                model.Relations = Sites.Helper.RelationHelper.Sum(sitedb.ExternalResource.GetUsedBy(item.Id));

                result.Add(model);
            }

            return(result.ToList <object>());
        }
示例#3
0
        public PagedListViewModel <RouteItemViewModel> Internal(ApiCall apiCall)
        {
            var sitedb = apiCall.WebSite.SiteDb();
            var pager  = ApiHelper.GetPager(apiCall, 30);

            PagedListViewModel <RouteItemViewModel> result = new PagedListViewModel <RouteItemViewModel>();

            var allroutes = sitedb.Routes.All();

            var total = allroutes.Count;

            result.TotalCount = total;
            result.TotalPages = ApiHelper.GetPageCount(total, pager.PageSize);
            result.PageNr     = pager.PageNr;

            List <RouteItemViewModel> list = new List <RouteItemViewModel>();

            string baseurl = sitedb.WebSite.BaseUrl();

            var items = allroutes.OrderBy(o => o.Name).Skip(pager.SkipCount).Take(pager.PageSize);

            foreach (var item in items)
            {
                RouteItemViewModel model = new RouteItemViewModel();
                model.Id           = item.Id;
                model.Name         = item.Name;
                model.ResourceType = ConstTypeContainer.GetName(item.DestinationConstType);
                model.ObjectId     = item.objectId;
                model.LastModified = item.LastModified;
                model.Relations    = Sites.Helper.RelationHelper.Sum(sitedb.Routes.GetUsedBy(item.Id));
                model.PreviewUrl   = Kooboo.Lib.Helper.UrlHelper.Combine(baseurl, model.Name);
                list.Add(model);
            }

            result.List = list;

            return(result);
        }
示例#4
0
        protected void RaiseBeforeEvent(TValue value, ChangeType changetype, TValue oldValue = default(TValue))
        {
            if (this.SiteObjectType == typeof(Page))
            {
                var maxpages = Kooboo.Data.Infrastructure.InfraManager.instance.MaxPages(this.SiteDb.WebSite.OrganizationId);
                if (maxpages != int.MaxValue)
                {
                    var count = this.SiteDb.Pages.Count();
                    if (count >= maxpages)
                    {
                        throw new Exception(Kooboo.Data.Language.Hardcoded.GetValue("Max number of pages per site has been reached, service level upgrade required"));
                    }
                }
            }


            if (this.SiteDb.WebSite.EnableConstraintFixOnSave && changetype != ChangeType.Delete)
            {
                Constraints.ConstraintChecker.FixOnSave(this.SiteDb, value as SiteObject);
            }

            // for kscript parameters.
            if (value is IScriptable)
            {
                var kscriptobject = value as IScriptable;
                var domobjct      = value as IDomObject;
                if (kscriptobject != null && domobjct != null)
                {
                    kscriptobject.RequestParas = Kooboo.Sites.Scripting.ScriptHelper.GetkScriptParaFromDom(this.SiteDb, domobjct.Dom);
                }
            }

            if (value is Kooboo.Sites.Models.Code)
            {
                var code = value as Kooboo.Sites.Models.Code;

                if (code.CodeType == Sites.Models.CodeType.PageScript)
                {
                    code.Parameters = Kooboo.Sites.Scripting.ScriptHelper.GetKScriptParameters(code.Body);
                }
            }

            if (value is Kooboo.Sites.Models.CoreObject && changetype != ChangeType.Delete)
            {
                if (value is Kooboo.Sites.Routing.Route)
                {
                    return;
                }

                var size = Kooboo.Sites.Service.ObjectService.GetSize(value);

                if (!Kooboo.Data.Infrastructure.InfraManager.Test(this.WebSite.OrganizationId, Data.Infrastructure.InfraType.Disk, size))
                {
                    var message = Data.Language.Hardcoded.GetValue("Over Disk Quota");
                    throw new Exception(message);
                }
                else
                {
                    string msg = ConstTypeContainer.GetName(value.ConstType);

                    var objinfo = Kooboo.Sites.Service.ObjectService.GetObjectInfo(this.SiteDb, value);


                    if (objinfo != null)
                    {
                        msg += "| " + objinfo.DisplayName;
                    }
                    else
                    {
                        msg += "| " + value.Name;
                    }

                    Kooboo.Data.Infrastructure.InfraManager.Add(this.WebSite.OrganizationId, Data.Infrastructure.InfraType.Disk, size, msg);
                }
            }
        }