示例#1
0
        private List <UsedByRelation> PageRelation(SiteDb sitedb, string by, Guid PageId)
        {
            string baseurl = sitedb.WebSite.BaseUrl();

            byte consttype = ConstObjectType.GetByte(by);

            List <UsedByRelation> result = new List <UsedByRelation>();

            var relations = sitedb.Relations.GetRelations(PageId, consttype);

            foreach (var item in relations)
            {
                var objectinfo = ObjectService.GetObjectInfo(sitedb, item.objectYId, item.ConstTypeY);

                if (objectinfo != null)
                {
                    UsedByRelation relation = new UsedByRelation();
                    relation.Name = objectinfo.DisplayName;
                    relation.Url  = objectinfo.Url;
                    if (!string.IsNullOrEmpty(relation.Url))
                    {
                        relation.Url = Lib.Helper.UrlHelper.Combine(baseurl, relation.Url);
                    }
                    relation.ModelType = objectinfo.ModelType;
                    relation.ObjectId  = objectinfo.ObjectId;
                    relation.ConstType = objectinfo.ConstType;
                    result.Add(relation);
                }
            }
            return(result);
        }
示例#2
0
        public List <InlineItemViewModel> Inline(ApiCall apiCall)
        {
            var sitedb = apiCall.WebSite.SiteDb();
            List <InlineItemViewModel> result = new List <InlineItemViewModel>();

            foreach (var item in sitedb.CssRules.GetInLineRules())
            {
                var info = ObjectService.GetObjectInfo(sitedb, item);

                InlineItemViewModel newitem = new InlineItemViewModel();
                newitem.Id           = item.Id;
                newitem.Name         = string.IsNullOrEmpty(item.KoobooOpenTag) ? item.RuleText : item.KoobooOpenTag;
                newitem.OwnerName    = info.DisplayName;
                newitem.OwnerType    = info.ModelType.Name;
                newitem.LastModified = item.LastModified;
                newitem.Source       = item.RuleText;
                result.Add(newitem);
            }

            return(result);
        }
示例#3
0
        private PagedListViewModel <SyncLogItemViewModel> GetLogItem(ApiCall call, bool initem)
        {
            var sitedb = call.WebSite.SiteDb();

            int pagesize = ApiHelper.GetPageSize(call);
            int pagenr   = ApiHelper.GetPageNr(call);

            PagedListViewModel <SyncLogItemViewModel> model = new PagedListViewModel <SyncLogItemViewModel>();

            model.PageNr   = pagenr;
            model.PageSize = pagesize;

            List <SyncLogItemViewModel> result = new List <SyncLogItemViewModel>();

            Guid settingid = call.GetGuidValue("SyncSettingId");

            var items = sitedb.Synchronization.Query.Where(o => o.SyncSettingId == settingid && o.In == initem).SelectAll().OrderByDescending(o => o.LastModifyTick);

            model.TotalCount = items.Count();
            model.TotalPages = ApiHelper.GetPageCount(model.TotalCount, model.PageSize);

            foreach (var item in items.Skip(model.PageNr * model.PageSize - model.PageSize).Take(model.PageSize))
            {
                var log = sitedb.Log.Get(item.Version);
                if (log != null)
                {
                    ChangeType changetype;
                    if (log.EditType == IndexedDB.EditType.Add)
                    {
                        changetype = ChangeType.Add;
                    }
                    else if (log.EditType == IndexedDB.EditType.Update)
                    {
                        changetype = ChangeType.Update;
                    }
                    else
                    {
                        changetype = ChangeType.Delete;
                    }

                    if (log.IsTable)
                    {
                        var kdb   = Kooboo.Data.DB.GetKDatabase(sitedb.WebSite);
                        var table = Data.DB.GetTable(kdb, log.TableName);

                        if (table != null)
                        {
                            var logdata = table.GetLogData(log);

                            string size = null;
                            if (logdata != null)
                            {
                                var json = Lib.Helper.JsonHelper.Serialize(logdata);
                                size = CalculateUtility.GetSizeString(json.Length);
                            }

                            var name = Kooboo.Sites.Service.LogService.GetTableDisplayName(sitedb, log, call.Context, logdata);

                            SyncLogItemViewModel logitem = new SyncLogItemViewModel();
                            logitem.Name = name;

                            logitem.ObjectType   = Data.Language.Hardcoded.GetValue("Table", call.Context);
                            logitem.LastModified = log.UpdateTime;
                            logitem.LogId        = log.Id;
                            logitem.ChangeType   = changetype;

                            result.Add(logitem);
                        }
                    }

                    else
                    {
                        var repo = sitedb.GetRepository(item.StoreName);

                        if (repo != null)
                        {
                            var siteobject = repo.GetByLog(log);

                            SyncLogItemViewModel logitem = new SyncLogItemViewModel();
                            var info = ObjectService.GetObjectInfo(sitedb, siteobject as ISiteObject);
                            logitem.Name         = info.Name;
                            logitem.Size         = Lib.Utilities.CalculateUtility.GetSizeString(info.Size);
                            logitem.ObjectType   = repo.StoreName;
                            logitem.LastModified = log.UpdateTime;
                            logitem.LogId        = log.Id;
                            logitem.ChangeType   = changetype;

                            result.Add(logitem);
                        }
                    }
                }
            }
            model.List = result;
            return(model);
        }
示例#4
0
        private PagedListViewModel <SyncLogItemViewModel> GetLogItem(ApiCall call, bool initem)
        {
            var sitedb = call.WebSite.SiteDb();

            int pagesize = ApiHelper.GetPageSize(call);
            int pagenr   = ApiHelper.GetPageNr(call);

            PagedListViewModel <SyncLogItemViewModel> model = new PagedListViewModel <SyncLogItemViewModel>();

            model.PageNr   = pagenr;
            model.PageSize = pagesize;

            List <SyncLogItemViewModel> result = new List <SyncLogItemViewModel>();

            Guid settingid = call.GetGuidValue("SyncSettingId");

            var items = sitedb.Synchronization.Query.Where(o => o.SyncSettingId == settingid && o.In == initem).SelectAll().OrderByDescending(o => o.LastModifyTick);

            model.TotalCount = items.Count();
            model.TotalPages = ApiHelper.GetPageCount(model.TotalCount, model.PageSize);

            foreach (var item in items.Skip(model.PageNr * model.PageSize - model.PageSize).Take(model.PageSize))
            {
                var repo = sitedb.GetRepository(item.StoreName);

                if (repo != null)
                {
                    var log = sitedb.Log.Get(item.Version);
                    if (log != null)
                    {
                        var siteobject = repo.GetByLog(log);

                        SyncLogItemViewModel logitem = new SyncLogItemViewModel();
                        var info = ObjectService.GetObjectInfo(sitedb, siteobject as ISiteObject);
                        logitem.Name         = info.Name;
                        logitem.Size         = Lib.Utilities.CalculateUtility.GetSizeString(info.Size);
                        logitem.ObjectType   = repo.StoreName;
                        logitem.LastModified = log.UpdateTime;
                        logitem.LogId        = log.Id;

                        if (log.EditType == IndexedDB.EditType.Add)
                        {
                            logitem.ChangeType = ChangeType.Add;
                        }
                        else if (log.EditType == IndexedDB.EditType.Update)
                        {
                            logitem.ChangeType = ChangeType.Update;
                        }
                        else
                        {
                            logitem.ChangeType = ChangeType.Delete;
                        }

                        result.Add(logitem);
                    }
                }
            }

            model.List = result;
            return(model);
        }
示例#5
0
        public IEmbeddableItemListViewModel(SiteDb siteDb, IEmbeddable embeddedobject)
        {
            string baseurl = siteDb.WebSite.BaseUrl();

            if (embeddedobject == null)
            {
                throw new ArgumentNullException("embedded object");
            }

            Id = embeddedobject.Id;

            if (embeddedobject.IsEmbedded)
            {
                Name = StringHelper.GetSummary(embeddedobject.Body);
                var info = ObjectService.GetObjectInfo(siteDb, embeddedobject as SiteObject);
                FullUrl   = info.Url;
                RouteName = Name;
            }
            else
            {
                var route = siteDb.Routes.GetByObjectId(embeddedobject.Id);
                if (route != null)
                {
                    //  Name = route.Name;
                    FullUrl   = Kooboo.Lib.Helper.UrlHelper.Combine(baseurl, route.Name);
                    RouteName = route.Name;
                    RouteId   = route.Id;
                }

                this.Name = embeddedobject.Name;
                if (string.IsNullOrEmpty(this.Name))
                {
                    if (route != null)
                    {
                        this.Name = route.Name;
                    }
                }
                if (string.IsNullOrEmpty(this.Name))
                {
                    this.Name = StringHelper.GetSummary(embeddedobject.Body);
                }
            }

            LastModified = embeddedobject.LastModified;


            List <UsedByRelation> usedby = null;

            if (embeddedobject.ConstType == ConstObjectType.Style)
            {
                usedby = siteDb.Styles.GetUsedBy(embeddedobject.Id);
            }
            else if (embeddedobject.ConstType == ConstObjectType.Script)
            {
                usedby = siteDb.Scripts.GetUsedBy(embeddedobject.Id);
            }
            else if (embeddedobject.ConstType == ConstObjectType.Form)
            {
                usedby = siteDb.Forms.GetUsedBy(embeddedobject.Id);
            }
            else if (embeddedobject.ConstType == ConstObjectType.Code)
            {
                usedby = siteDb.Code.GetUsedBy(embeddedobject.Id);
            }

            References = Sites.Helper.RelationHelper.Sum(usedby);
        }