Example #1
0
        /// <summary>
        /// 基于jgGrid的分页
        /// </summary>
        /// <param name="pg"></param>
        /// <param name="jq"></param>
        /// <returns></returns>
        public Tuple <int, List <SystemUser> > PageSystemUsers(PubPage pg, JqGridModel.JqGrid jq)
        {
            var queryable = BaseContext.Set <SystemUser>().AsQueryable();

            if (!string.IsNullOrEmpty(pg.keyword))
            {
                queryable = queryable.Where(c => c.Telephone == pg.keyword);
            }
            if (!string.IsNullOrEmpty(pg.startDate.ToString()))
            {
                queryable = queryable.Where(c => c.CreateTime >= pg.startDate);
            }
            if (!string.IsNullOrEmpty(pg.endDate.ToString()))
            {
                var dt = DateTimeHelper.EndDateTime(pg.endDate);
                queryable = queryable.Where(c => c.CreateTime <= dt);
            }
            var count = queryable.Count();

            if (string.Equals(jq.sord, "ASC", StringComparison.CurrentCultureIgnoreCase))
            {
                var list = queryable.OrderByz(jq.sidx).Skip(jq.rows * (jq.page - 1)).Take(jq.rows).ToList();
                return(new Tuple <int, List <SystemUser> >(count, list));
            }
            else
            {
                var list = queryable.OrderByDescendingz(jq.sidx).Skip(jq.rows * (jq.page - 1)).Take(jq.rows).ToList();
                return(new Tuple <int, List <SystemUser> >(count, list));
            }
        }
Example #2
0
        public ActionResult Restore(int id)
        {
            VerPage verPage = _db.Set <VerPage>().SingleOrDefault(e => e.VerId == id);

            if (verPage == null)
            {
                throw new Exception("Version is not found.");
            }

            CmsPage cmsPage = _db.Set <CmsPage>().SingleOrDefault(e => e.Id == verPage.Id);

            if (cmsPage != null)
            {
                CopyProperties(verPage, cmsPage);

                PubPage pubpage = _db.Set <PubPage>().SingleOrDefault(e => e.Id == verPage.Id);

                if (pubpage != null && pubpage.Modified == verPage.Modified)
                {
                    cmsPage.Status = CmsPage.STATUS_NORMAL;
                }
                else
                {
                    cmsPage.Status = CmsPage.STATUS_CHANGE_SAVED;
                }

                ((DbContext)_db).Entry(cmsPage).State = EntityState.Modified;
                _db.SaveChanges();
            }

            return(Redirect(PageHelper.Goto(verPage.Id, _db)));
        }
Example #3
0
        public Tuple <int, List <SysLog> > PageBootstrap(PubPage pg, Bootstrap.BootstrapParams bbp)
        {
            var queryable = BaseContext.Set <SysLog>().AsQueryable();

            if (!string.IsNullOrEmpty(pg.keyword))
            {
                queryable = queryable.Where(c => c.LogMessage == pg.keyword);
            }
            if (!string.IsNullOrEmpty(pg.startDate.ToString()))
            {
                queryable = queryable.Where(c => c.CreateTime >= pg.startDate);
            }
            if (!string.IsNullOrEmpty(pg.endDate.ToString()))
            {
                var dt = DateTimeHelper.EndDateTime(pg.endDate);
                queryable = queryable.Where(c => c.CreateTime <= dt);
            }
            var count = queryable.Count();

            if (string.Equals(bbp.order, "ASC", StringComparison.CurrentCultureIgnoreCase))
            {
                var list = queryable.OrderByz(bbp.sort).Skip(bbp.offset).Take(bbp.limit).ToList();
                return(new Tuple <int, List <SysLog> >(count, list));
            }
            else
            {
                var list = queryable.OrderByDescendingz(bbp.sort).Skip(bbp.offset).Take(bbp.limit).ToList();
                return(new Tuple <int, List <SysLog> >(count, list));
            }
        }
Example #4
0
        public ActionResult RenderToExcel3(PubPage fg)
        {
            string sql = "select * from SystemUser";
            var    dt  = _iSysUserServices.ToDataTable(sql, null);

            AsposeExcel.ToExcel(dt);
            return(Content(""));
        }
Example #5
0
        public ActionResult RenderToExcel2(PubPage fg)
        {
            string sql = "select * from SystemUser";
            var    dt  = _iSysUserServices.ToDataTable(sql, null);

            NpoiHelper.ExportExcel(dt, "用户信息" + DateTime.Now.ToString("yyyy-MM-dd") + ".xls");
            return(Content(""));
            //return File("application/vnd.ms-excel", "用户信息" + DateTime.Now.ToString("yyyy-MM-dd") + ".xls");
        }
Example #6
0
        private void PublishDraft(CmsPage cmsPage)
        {
            int     innerId = cmsPage.Id;
            PubPage pubPage = _db.Set <PubPage>().SingleOrDefault(e => e.Id == innerId);

            if (pubPage == null)
            {
                pubPage    = new PubPage();
                pubPage.Id = cmsPage.Id;
                _db.Set <PubPage>().Add(pubPage);
            }
            else
            {
                ((DbContext)_db).Entry(pubPage).State = EntityState.Modified;
            }

            pubPage.Type        = cmsPage.Type;
            pubPage.Commentable = cmsPage.Commentable;
            pubPage.Hidden      = cmsPage.Hidden;
            pubPage.Title       = cmsPage.Title;
            pubPage.NaviTitle   = cmsPage.NaviTitle;
            pubPage.Layout      = cmsPage.Layout;
            pubPage.MenuOrder   = cmsPage.MenuOrder;

            if (pubPage.Html == null)
            {
                pubPage.Html = new PubPageHtml();
            }

            pubPage.Html.Content = cmsPage.Html.Content;
            pubPage.Html.Sidebar = cmsPage.Html.Sidebar;
            pubPage.Html.Header  = cmsPage.Html.Header;

            pubPage.Description = cmsPage.Description;
            pubPage.Keywords    = cmsPage.Keywords;
            pubPage.Layout      = cmsPage.Layout;

            //pubPage.NaviNode = cmsPage.NaviNode;
            //don't save navi node to remove constraint
            pubPage.NaviNode = cmsPage.NaviNode;

            pubPage.NaviTitle = cmsPage.NaviTitle;

            pubPage.Modified   = cmsPage.Modified;
            pubPage.ModifiedBy = cmsPage.ModifiedBy;
            pubPage.Created    = cmsPage.Created;
            pubPage.CreatedBy  = cmsPage.CreatedBy;

            pubPage.Url = cmsPage.Url;

            //db.SaveChanges();
            //will be save later
        }
Example #7
0
        public ActionResult GetLogList(JqGridModel.JqGrid jq, PubPage fg)
        {
            if (jq.page == 0)
            {
                jq.page = 1;
                jq.rows = 10;
                jq.sidx = "CreateTime";
                jq.sord = "DESC";
            }
            var list = _iSysLogServices.PageSysLog(fg, jq);

            return(Json(JqGridModel.GridData(list.Item1, jq, list.Item2), JsonRequestBehavior.AllowGet));
        }
Example #8
0
        public ActionResult GetLogList2(Bootstrap.BootstrapParams bbp, PubPage pg, string strParentID)
        {
            //var db = ContextFactory.GetCurrentContext();
            //var queryable = db.Set<SysLog>().Where(c => c.CreateTime < DateTime.Now);
            //int total = queryable.Count();
            //var list = queryable.OrderByz(bbp.sort)
            //     .Skip(bbp.offset).Take(bbp.limit).ToList();
            //bbp.order = "DESC";
            //bbp.sort = "CreateTime";
            //bbp.offset = 10;
            //bbp.limit = 10;
            var list = _iSysLogServices.PageBootstrap(pg, bbp);

            return(Json(Bootstrap.GridData(list.Item1, list.Item2), JsonRequestBehavior.AllowGet));
        }
Example #9
0
        public ActionResult RenderToExcel(PubPage fg)
        {
            string sql = "select Telephone,Pwd from SystemUser";
            var    dt  = _iSysUserServices.ToDataTable(sql, null);

            string[] Telephone = { "手机号", "密码" };
            for (int i = 0; i < dt.Columns.Count; i++)
            {
                dt.Columns[i].ColumnName = Telephone[i];
            }
            var ms   = NpoiHelper.RenderToExcel(dt);
            var xlsx = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
            var xls  = "application/vnd.ms-excel";

            return(File(ms, xls, "用户信息" + DateTime.Now.ToString("yyyy-MM-dd") + ".xls"));
        }
Example #10
0
        private void PublishDraft(CmsPage cmsPage, CmsContext db)
        {
            int     innerId = cmsPage.Id;
            PubPage pubPage = new PubPage();

            pubPage.Id = cmsPage.Id;
            db.Set <PubPage>().Add(pubPage);

            pubPage.Title     = cmsPage.Title;
            pubPage.NaviTitle = cmsPage.NaviTitle;
            pubPage.Layout    = cmsPage.Layout;
            pubPage.MenuOrder = cmsPage.MenuOrder;

            if (pubPage.Html == null)
            {
                pubPage.Html = new PubPageHtml();
            }

            pubPage.Html.Content = cmsPage.Html.Content;
            pubPage.Html.Sidebar = cmsPage.Html.Sidebar;
            pubPage.Html.Header  = cmsPage.Html.Header;

            pubPage.Description = cmsPage.Description;
            pubPage.Keywords    = cmsPage.Keywords;
            pubPage.Layout      = cmsPage.Layout;

            pubPage.NaviNode = cmsPage.NaviNode;

            pubPage.NaviTitle = cmsPage.NaviTitle;

            pubPage.Modified   = cmsPage.Modified;
            pubPage.ModifiedBy = cmsPage.ModifiedBy;
            pubPage.Created    = cmsPage.Created;
            pubPage.CreatedBy  = cmsPage.CreatedBy;
            pubPage.Url        = cmsPage.Url;
        }
Example #11
0
        public ActionResult Do(string id, string act)
        {
            int     internalId = CmsPage.FromFriendlyId(id);
            CmsPage page       = _db.Set <CmsPage>().Single(e => e.Id == internalId);

            var accessMode = SecurityHelper.PageAccessMode(_db, page);

            bool isModified = false;

            switch (act)
            {
                #region delete
            case "delete":
                if (accessMode < PermissionType.Publish)
                {
                    throw new Exception("Access Denided.");
                }

                NaviNode naviNode = page.NaviNode;

                int parentId = naviNode.Id;

                int numOfPages = _db.Set <CmsPage>().Where(x => x.NaviNode.Id == parentId).Count();

                int numOfFolder =
                    _db.Set <NaviNode>().Where(x => x.Parent.Id == parentId).Count();

                if (numOfPages == 1 && numOfFolder == 0)
                {
                    //delete both page and folder
                    var pubPages = _db.Set <PubPage>().Where(e => e.NaviNode.Id == naviNode.Id).ToList();
                    var pages    = _db.Set <CmsPage>().Where(e => e.NaviNode.Id == naviNode.Id).ToList();
                    ((DbSet <PubPage>)_db.Set <PubPage>()).RemoveRange(pubPages);
                    ((DbSet <CmsPage>)_db.Set <CmsPage>()).RemoveRange(pages);
                    _db.SaveChanges();

                    NaviNode toBeDeleted = naviNode;
                    var      naviParent  = naviNode.Parent;
                    _db.Set <NaviNode>().Remove(toBeDeleted);
                    _db.SaveChanges();
                    naviNode = naviParent;
                }
                else
                {
                    PubPage pubPage = _db.Set <PubPage>().SingleOrDefault(p => p.Id == page.Id);
                    if (pubPage != null)
                    {
                        _db.Set <PubPage>().Remove(pubPage);
                    }
                    _db.Set <CmsPage>().Remove(page);
                    _db.SaveChanges();
                }

                CmsPage defaultPage = naviNode.Pages.OrderBy(pg => pg.MenuOrder).ThenBy(pg => pg.Id).FirstOrDefault();
                while (defaultPage == null)
                {
                    if (naviNode.Id == 1 || naviNode.Parent == null)
                    {
                        throw new Exception("Navigation Error");
                    }

                    naviNode = naviNode.Parent;

                    defaultPage = naviNode.Pages.OrderBy(pg => pg.MenuOrder).ThenBy(pg => pg.Id).FirstOrDefault();
                }

                return(RedirectToAction("Page", "Cms", new { id = defaultPage.FriendlyId }));

                #endregion
                #region unlock
            case "unlock":
                if (accessMode < PermissionType.Edit)
                {
                    throw new Exception("Access Denided.");
                }
                if (page.Status == CmsPage.STATUS_EDITING_START)
                {
                    page.Status = CmsPage.STATUS_NORMAL;
                    isModified  = true;
                }
                else if (page.Status == CmsPage.STATUS_EDITING_AGAIN)
                {
                    page.Status = CmsPage.STATUS_CHANGE_SAVED;
                    isModified  = true;
                }

                //db.Entry(page).State = EntityState.Modified;
                //db.SaveChanges();

                //return RedirectToAction("Edit", new { id = id });

                break;

                #endregion
                #region publish
            case "publish":
                if (accessMode < PermissionType.Publish)
                {
                    throw new Exception("Access Denided.");
                }
                if (page.Status == CmsPage.STATUS_NORMAL ||
                    page.Status == CmsPage.STATUS_CHANGE_SAVED)
                {
                    page.IsPublished = true;
                    page.Status      = CmsPage.STATUS_NORMAL;
                    PublishDraft(page);
                    SaveVersion(page);
                    isModified = true;
                }

                break;

                #endregion
                #region unpublish
            case "unpublish":
                if (accessMode < PermissionType.Publish)
                {
                    throw new Exception("Access Denided.");
                }
                // Remove the published page from public site if it exists.
                PubPage pageToUnpublish = _db.Set <PubPage>().SingleOrDefault(p => p.Id == page.Id);
                if (pageToUnpublish != null)
                {
                    _db.Set <PubPage>().Remove(pageToUnpublish);
                    _db.SaveChanges();
                }

                // Label most recent live version in history to unpublished.
                VerPage currentLiveVer = _db.Set <VerPage>().SingleOrDefault(e => e.Id == page.Id && e.IsPublished);
                if (currentLiveVer != null)
                {
                    currentLiveVer.IsPublished = false;
                    currentLiveVer.Status      = CmsPage.STATUS_UNPUBLISHED;
                    _db.SaveChanges();
                }

                // Change CmsPage status after remove PubPage and update VerPage
                page.IsPublished = false;
                page.Status      = CmsPage.STATUS_CHANGE_SAVED;
                isModified       = true;

                break;

                #endregion
                #region edit
            case "edit":
                bool allowEdit = false;

                if (page.Status == CmsPage.STATUS_NORMAL)
                {
                    page.Status = CmsPage.STATUS_EDITING_START;
                    allowEdit   = true;
                }
                else if (page.Status == CmsPage.STATUS_CHANGE_SAVED)
                {
                    page.Status = CmsPage.STATUS_EDITING_AGAIN;
                    allowEdit   = true;
                }
                else if (page.Status != CmsPage.STATUS_EDITING_START &&
                         page.Status != CmsPage.STATUS_EDITING_AGAIN)
                {
                    page.Status = CmsPage.STATUS_EDITING_AGAIN;
                    allowEdit   = true;
                }

                if (User.Identity.Name.ToUpper() == page.ModifiedBy &&
                    accessMode >= PermissionType.Edit)
                {
                    allowEdit = true;
                }

                if (allowEdit)
                {
                    page.Modified   = DateTime.Now;
                    page.ModifiedBy = User.Identity.Name.ToUpper();
                    ((DbContext)_db).Entry(page).State = EntityState.Modified;
                    _db.SaveChanges();

                    return(RedirectToAction("Edit", new { id = id }));
                }

                break;

                #endregion
                #region cancel
            case "cancel":
                // TODO Restore previous status
                if (page.Status == CmsPage.STATUS_EDITING_START)
                {
                    page.Status = CmsPage.STATUS_NORMAL;
                    isModified  = true;
                }
                else if (page.Status == CmsPage.STATUS_EDITING_AGAIN)
                {
                    page.Status = CmsPage.STATUS_CHANGE_SAVED;
                    isModified  = true;
                }

                break;

                #endregion
                #region restore
            case "restore":
                if (accessMode < PermissionType.Edit)
                {
                    throw new Exception("Access Denided.");
                }
                RestoreLastVersion(page);
                isModified = true;
                break;
                #endregion
            }

            if (isModified)
            {
                ((DbContext)_db).Entry(page).State = EntityState.Modified;
                _db.SaveChanges();
            }

            return(Redirect("/" + page.Url));
            //return RedirectToAction("Page", "Cms", new { id = page.FriendlyId });
        }
Example #12
0
 /// <summary>
 /// 基于bootstrap实现的分页
 /// </summary>
 /// <param name="pg">查询参数</param>
 /// <param name="bbp">bootstrap table 的分页相关信息</param>
 /// <returns></returns>
 public Tuple <int, List <SysLog> > PageBootstrap(PubPage pg, Bootstrap.BootstrapParams bbp)
 {
     return(_sysUserRepository.PageBootstrap(pg, bbp));
 }
Example #13
0
 public Tuple <int, List <SysLog> > PageSysLog(PubPage pg, JqGridModel.JqGrid jq)
 {
     return(_sysUserRepository.PageSysLog(pg, jq));
 }