/// <summary>
 /// 修改或者添加一条数据
 /// </summary>
 /// <param name="model">实体参数</param>
 /// <returns>大于0,操作成功,反之失败</returns>
 public int OperateModel(Base_RolesInfo model)
 {
     if (!string.IsNullOrEmpty(model.Id) && model.Id.Length == 36)
     {
         //编辑
         var existModel = this.LoadEntities(u => u.Id == model.Id).FirstOrDefault();
         existModel.RoleName = model.RoleName;
         existModel.OrderBy  = model.OrderBy;
         #region 修改角色菜单关系
         var existLink = DbSession.Base_RoleMenuInfoRepository.LoadEntities(ur => ur.RoleId == existModel.Id);
         //1. 删除现有角色菜单关系
         foreach (var item in existLink)
         {
             DbSession.Base_RoleMenuInfoRepository.DeleteEntity(item);
         }
         //2. 添加 新的 角色菜单关系
         if (!string.IsNullOrEmpty(model.menus))
         {
             var menuList = model.menus.Split(',');
             foreach (var item in menuList)
             {
                 Base_RoleMenuInfo base_RoleMenuInfo = new Base_RoleMenuInfo();
                 base_RoleMenuInfo.Id     = Guid.NewGuid().ToString();
                 base_RoleMenuInfo.RoleId = model.Id;
                 base_RoleMenuInfo.MenuId = item;
                 DbSession.Base_RoleMenuInfoRepository.AddEntity(base_RoleMenuInfo);
             }
         }
         #endregion
     }
     else if (string.IsNullOrEmpty(model.Id))
     {
         //添加
         var addModel = new Base_RolesInfo();
         addModel.Id       = Guid.NewGuid().ToString();
         addModel.RoleName = model.RoleName;
         addModel.OrderBy  = model.OrderBy;
         addModel.DelFlag  = 0;
         DbSession.Base_RolesInfoRepository.AddEntity(addModel);
         #region 添加 新的 角色菜单关系
         //1. 添加 新的 角色菜单关系
         if (!string.IsNullOrEmpty(model.menus))
         {
             var menuList = model.menus.Split(',');
             foreach (var item in menuList)
             {
                 Base_RoleMenuInfo base_RoleMenuInfo = new Base_RoleMenuInfo();
                 base_RoleMenuInfo.Id     = Guid.NewGuid().ToString();
                 base_RoleMenuInfo.RoleId = model.Id;
                 base_RoleMenuInfo.MenuId = item;
                 DbSession.Base_RoleMenuInfoRepository.AddEntity(base_RoleMenuInfo);
             }
         }
         #endregion
     }
     return(DbSession.SaveChange());
 }
        /// <summary>
        /// 判断是否存在相同记录
        /// </summary>
        /// <param name="model">参数</param>
        /// <returns>true表示存在相同记录,false表示不存在</returns>
        public bool ExistSameRoleInfo(Base_RolesInfo model)
        {
            var userInfo = this.LoadEntities(u => u.RoleName == model.RoleName).FirstOrDefault();

            if (userInfo != null)
            {
                return(true);
            }
            return(false);
        }
 public ActionResult Edit(Base_RolesInfo model)
 {
     if (model == null)
     {
         result.statusCode = "300";
         result.message    = GlobalLngResource.GetRes("noRecords");
         return(Json(result));
     }
     if (!ModelState.IsValid)
     {
         result.statusCode = "300";
         result.message    = GlobalLngResource.GetRes("UIInputModelDataError");
         return(Json(result));
     }
     try
     {
         //只在添加时判断
         if (string.IsNullOrEmpty(model.Id) || model.Id.Length != 36)
         {
             var existSameRoleInfo = service.ExistSameRoleInfo(model);
             if (existSameRoleInfo)
             {
                 result.statusCode = "300";
                 result.message    = GlobalLngResource.GetRes("ExistSameRoleInfo");
                 return(Json(result));
             }
         }
         var res = service.OperateModel(model);
         if (res > 0)
         {
             result.statusCode = "200";
             result.message    = GlobalLngResource.GetRes("operSuccess");
         }
         else
         {
             result.statusCode = "300";
             result.message    = GlobalLngResource.GetRes("operFailure");
         }
     }
     catch
     {
         result.statusCode = "300";
         result.message    = GlobalLngResource.GetRes("sysException");
     }
     return(Json(result));
 }
        public List <Base_RolesInfo> GetPaging(Base_RolesInfo model, out int count)
        {
            List <Base_RolesInfo> backDtList = new List <Base_RolesInfo>();
            //延迟加载;
            var isAsc = model.orderDirection == "asc" ? true : false;
            var temp  = this.LoadEntities(l => l.DelFlag == 0);

            if (!string.IsNullOrEmpty(model.RoleName))
            {
                temp = temp.Where(l => l.RoleName.Contains(model.RoleName));
            }
            model.orderField = !string.IsNullOrEmpty(model.orderField) ? model.orderField : "OrderBy";
            temp             = temp.OrderByQueryable(model.orderField, model.orderDirection);
            var resList = temp.ToPaging(model.pageCurrent, model.pageSize, out count);

            return(resList);
        }
        //public ActionResult Delete(string id)
        //{
        //    var model = new Base_RolesInfo() { Id = id };
        //    var res = service.DeleteEntity(model);
        //    if (res > 0)
        //    {
        //        result.statusCode = "200";
        //        result.message = GlobalLngResource.GetRes("operSuccess");
        //    }
        //    else
        //    {
        //        result.statusCode = "300";
        //        result.message = GlobalLngResource.GetRes("operFailure");
        //    }
        //    return Json(result);
        //}

        /// <summary>
        /// 删除一条记录
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public JsonResult Delete(string id)
        {
            if (string.IsNullOrEmpty(id))
            {
                result.statusCode = "300";
                result.message    = GlobalLngResource.GetRes("noRecords");
                return(Json(result));
            }
            Base_RolesInfo delModel = new Base_RolesInfo()
            {
                Id = id
            };

            try
            {
                List <string> idList = new List <string>()
                {
                    id
                };
                var res = service.Delete(idList);
                if (res > 0)
                {
                    result.statusCode = "200";
                    result.message    = GlobalLngResource.GetRes("operSuccess");
                }
                else
                {
                    result.statusCode = "300";
                    result.message    = GlobalLngResource.GetRes("operFailure");
                }
            }
            catch (System.Data.Entity.Validation.DbEntityValidationException ex)
            {
                result.statusCode = "300";
                result.message    = GlobalLngResource.GetRes("sysException");
            }
            catch (Exception ex)
            {
                result.statusCode = "300";
                result.message    = GlobalLngResource.GetRes("sysException");
            }
            return(Json(result));
        }
        public ActionResult Index(Base_RolesInfo model)
        {
            int count = 0;

            try
            {
                var temp = service.GetPaging(model, out count);
                ViewBag.ShowList = temp;
                ViewBag.total    = count;
                ViewBag.Model    = model;
                return(View());
            }
            catch (Exception ex)
            {
                result.statusCode = "300";
                result.message    = GlobalLngResource.GetRes("sysException");
                return(Json(result));
            }
        }