예제 #1
0
파일: SiteLog.cs 프로젝트: xhute/Kooboo
        public PagedListViewModel <SiteLogViewModel> List(ApiCall apiCall)
        {
            var sitedb = apiCall.WebSite.SiteDb();

            var pager = ApiHelper.GetPager(apiCall, 50);

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

            var total = sitedb.Log.Store.Count();

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

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

            var items = sitedb.Log.Store.Filter.OrderByDescending().Skip(pager.SkipCount).Take(pager.PageSize);

            foreach (var item in items)
            {
                SiteLogViewModel model = new SiteLogViewModel
                {
                    LastModified = item.UpdateTime,
                    ItemName     = Kooboo.Sites.Service.LogService.GetLogDisplayName(sitedb, item),
                    Id           = item.Id
                };

                if (model.ItemName != null && model.ItemName.Length > 85)
                {
                    model.ItemName = Lib.Helper.StringHelper.SementicSubString(model.ItemName, 0, 70);
                    var bytes = System.Text.Encoding.UTF8.GetBytes(model.ItemName);

                    if (bytes.Length > 160)
                    {
                        model.ItemName = Lib.Helper.StringHelper.SementicSubString(model.ItemName, 0, 40);
                    }
                    model.ItemName += "...";
                }

                model.StoreName = item.StoreName;

                model.KeyHash       = item.KeyHash;
                model.StoreNameHash = item.StoreNameHash;
                model.ActionType    = item.EditType.ToString();

                model.UserName = Data.GlobalDb.Users.GetUserName(item.UserId);

                if (model.KeyHash != default(Guid))
                {
                    list.Add(model);
                }
            }

            result.List = list;

            return(result);
        }
예제 #2
0
        public ActionResult Log()
        {
            SiteLogViewModel viewModel = new SiteLogViewModel();

            TimeSpan logPeriod = TimeSpan.FromDays(7);

            viewModel.LogMessages = this.doctrineShipsServices.GetLogMessages(logPeriod);

            return(View(viewModel));
        }