示例#1
0
        public ActionResult Index(OperationParam op)
        {
            #region 验证登录
            User loginUser = AccountHelper.LoginUser;
            if (loginUser == null)
            {
                return(RedirectToAction("Login", "Home", new { area = "" }));
            }
            ViewBag.LoginUser = loginUser;
            #endregion

            #region 验证权限
            string pageId = "Index_Pictures"; //站点目录中的id属性值
            if (!Access.Validate(pageId))
            {
                return(HttpNotFound());
            }
            ViewBag.PageId = pageId;
            #endregion

            #region 翻页、查询、排序、显示全部、移动、删除
            ReturnValue returnValue = new ReturnValue();
            Picture     deleteData  = null;
            switch (op.OpType)
            {
            case OperationType.Pager: break;

            case OperationType.Query: break;

            case OperationType.Sort: break;

            case OperationType.ShowAll: break;

            case OperationType.RankUp: break;

            case OperationType.Delete:
                deleteData = db.Pictures.Find(Guid.Parse(op.OpArgument));
                if (deleteData == null)
                {
                    returnValue.Type    = ReturnType.DeleteFailure;
                    returnValue.Message = ResultMessage.DeleteFailure;
                }
                else
                {
                    try
                    {
                        db.Pictures.Remove(deleteData);
                        db.SaveChanges();
                        returnValue.Type    = ReturnType.DeleteSuccess;
                        returnValue.Message = ResultMessage.DeleteSuccess;
                    }
                    catch
                    {
                        db.Entry(deleteData).State = EntityState.Unchanged;
                        returnValue.Type           = ReturnType.DeleteFailure;
                        returnValue.Message        = ResultMessage.DeleteFailure;
                    }
                }
                OperationParam.Reset(ModelState);
                break;

            case OperationType.Deletes:
                string[] ids     = op.OpArgument.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
                bool     success = true;
                foreach (string id in ids)
                {
                    deleteData = db.Pictures.Find(Guid.Parse(id));
                    if (deleteData == null)
                    {
                        continue;
                    }
                    else
                    {
                        db.Pictures.Remove(deleteData);
                    }
                    try
                    {
                        db.SaveChanges();
                    }
                    catch
                    {
                        db.Entry(deleteData).State = EntityState.Unchanged;
                        success = false;
                    }
                }
                if (success)
                {
                    returnValue.Type    = ReturnType.DeletesSuccess;
                    returnValue.Message = ResultMessage.DeletesSuccess;
                }
                else
                {
                    returnValue.Type    = ReturnType.DeletesFailure;
                    returnValue.Message = ResultMessage.DeletesFailure;
                }
                OperationParam.Reset(ModelState);
                break;
            }
            #endregion

            IQueryable <Picture> datas = QueryHelper.ExecuteQuery(db.Pictures, op.OpQueryString); //执行前台查询条件(延迟)。若有附加条件,后续添加.Where()子句
            Pager pager = new Pager(datas.Count(), op.OpPager, null);                             //页码相关对象
            ViewBag.Pager = pager;
            if (string.IsNullOrEmpty(op.OpSortProperty))
            {
                op.OpSortProperty = "Name"; op.OpSortDirection = SortDirection.Ascending;
            }                                                                       //首次打开页面的初始排序依据及方向 <需修改>
            IList <Picture> pictures = datas
                                                                                    //.Include(s=>s.) //Include所有需要的导航属性和导航集合(含多级导航),一次性查询数据库 <需修改>
                                       .Sort(op.OpSortProperty, op.OpSortDirection) //排序
                                       .GetPageData(pager)                          //选择当前页的数据
                                       .ToList();                                   //执行查询
            ViewBag.OperationParam = op;
            ViewBag.ReturnValue    = returnValue.ToJson();
            return(View(pictures));
        }
示例#2
0
        public ActionResult Index(OperationParam op)
        {
            #region 验证登录
            User loginUser = AccountHelper.LoginUser;
            if (loginUser == null)
            {
                return(RedirectToAction("Login", "Home", new { area = "" }));
            }
            ViewBag.LoginUser = loginUser;
            #endregion

            #region 验证权限
            string pageId = "Index_Role";//站点目录中的id属性值
            if (!Access.Validate(pageId))
            {
                return(HttpNotFound());
            }
            ViewBag.PageId = pageId;
            #endregion

            #region  除
            ReturnValue returnValue = new ReturnValue();
            switch (op.OpType)
            {
            case OperationType.Pager: break;

            case OperationType.Query: break;

            case OperationType.Sort: break;

            case OperationType.ShowAll: break;

            case OperationType.RankUp: break;

            case OperationType.Delete:
                try
                {
                    Role role = db.Roles.Find(Guid.Parse(op.OpArgument));
                    if (role == null)
                    {
                        returnValue.Type    = ReturnType.DeleteFailure;
                        returnValue.Message = ResultMessage.DeleteFailure;
                    }
                    else
                    {
                        db.Roles.Remove(role);
                        db.SaveChanges();
                        returnValue.Type    = ReturnType.DeleteSuccess;
                        returnValue.Message = ResultMessage.DeleteSuccess;
                    }
                }
                catch
                {
                    returnValue.Type    = ReturnType.DeleteFailure;
                    returnValue.Message = ResultMessage.DeleteFailure;
                }
                OperationParam.Reset(ModelState);
                break;

            case OperationType.Deletes:
                try
                {
                    string[] ids = op.OpArgument.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
                    foreach (string id in ids)
                    {
                        Role role = db.Roles.Find(Guid.Parse(id));
                        if (role == null)
                        {
                            continue;
                        }
                        else
                        {
                            db.Roles.Remove(role);
                        }
                    }
                    db.SaveChanges();
                    returnValue.Type    = ReturnType.DeletesSuccess;
                    returnValue.Message = ResultMessage.DeletesSuccess;
                }
                catch
                {
                    returnValue.Type    = ReturnType.DeletesFailure;
                    returnValue.Message = ResultMessage.DeletesFailure;
                }
                OperationParam.Reset(ModelState);
                break;
            }
            #endregion

            IQueryable <Role> datas = QueryHelper.ExecuteQuery(db.Roles, op.OpQueryString); //前台查询条件(延迟执行)。若附加条件,添加Where
            Pager             pager = new Pager(datas.Count(), op.OpPager, null);           //页码相关对象
            ViewBag.Pager = pager;
            if (string.IsNullOrEmpty(op.OpSortProperty))
            {
                op.OpSortProperty = "Name"; op.OpSortDirection = SortDirection.Descending;
            }                                                                                                  //首次打开页面的初始排序依据及方向 <需修改>
            List <Role> roles = datas.Sort(op.OpSortProperty, op.OpSortDirection).GetPageData(pager).ToList(); //数据排序、执行查询
            ViewBag.OperationParam = op;
            ViewBag.ReturnValue    = returnValue.ToJson();
            return(View(roles));
        }