Beispiel #1
0
        /// <summary>
        /// 取得Role資料
        /// </summary>
        /// <returns></returns>
        public IEnumerable <RoleDTO> GetRoleData(PageDataVO pageDataVO)
        {
            List <string> param = new List <string>();

            string condition = string.Empty;

            if (pageDataVO.WhereCondition != null)
            {
                for (int i = 0; i < pageDataVO.WhereCondition.Count; i++)
                {
                    if (i != pageDataVO.WhereCondition.Count - 1)
                    {
                        condition = condition + pageDataVO.WhereCondition[i].Key + " like @p" + i.ToString() + " And ";
                    }
                    else
                    {
                        condition = condition + pageDataVO.WhereCondition[i].Key + " like @p" + i.ToString() + " ";
                    }
                    param.Add("%" + pageDataVO.WhereCondition[i].Value + "%");
                }
            }
            else
            {
                condition = "1=1";
            }

            string sqlStr = string.Format(@"Select [RoleID],[RoleName],[Description] From  
                             (Select ROW_NUMBER() OVER(ORDER BY {0} {1} ) AS row, * from [Role] where {2} ) as tb1
                              where row > @p{3}  and row < @p{4} ", pageDataVO.OrderByColumn, pageDataVO.OrderByType, condition, param.Count, param.Count + 1);

            param.Add(pageDataVO.LowerBound.ToString());
            param.Add(pageDataVO.UpperBound.ToString());

            return(_dataAccess.QueryDataTable <RoleDTO>(sqlStr, param.ToArray()));
        }
Beispiel #2
0
        /// <summary>
        /// 取得Role資料
        /// </summary>
        /// <returns></returns>
        public IEnumerable <RoleVO> GetRoleData(PageDataVO pageDataVO)
        {
            pageDataVO.PageSize = pageDataVO.PageSize ?? Convert.ToInt32(ConfigurationManager.AppSettings["TablePageCount"]);

            pageDataVO.DataCount = _roleEfRepo.GetRoleCount(pageDataVO);

            if (pageDataVO.DataCount % pageDataVO.PageSize.Value == 0)
            {
                pageDataVO.AllPageNumber = pageDataVO.DataCount / pageDataVO.PageSize.Value;
            }
            else
            {
                pageDataVO.AllPageNumber = pageDataVO.DataCount / pageDataVO.PageSize.Value + 1;
            }

            pageDataVO.LowerBound = (pageDataVO.PageNumber - 1) * pageDataVO.PageSize.Value;
            pageDataVO.UpperBound = pageDataVO.LowerBound + pageDataVO.PageSize.Value + 1;
            if (pageDataVO.LowerBound >= pageDataVO.DataCount)
            {
                pageDataVO.UpperBound = pageDataVO.DataCount + 1;
                pageDataVO.LowerBound = pageDataVO.UpperBound - (pageDataVO.PageSize.Value + 1);
            }

            return(Utility.MigrationIEnumerable <RoleDTO, RoleVO>(_roleEfRepo.GetRoleData(pageDataVO)));
        }
Beispiel #3
0
        /// <summary>
        /// 取得資料總筆數
        /// 只有where條件會影響總筆數
        /// </summary>
        /// <returns></returns>
        public int GetRoleCount(PageDataVO pageDataVO)
        {
            List <string> param = new List <string>();

            string condition = string.Empty;

            if (pageDataVO.WhereCondition != null)
            {
                for (int i = 0; i < pageDataVO.WhereCondition.Count; i++)
                {
                    if (i != pageDataVO.WhereCondition.Count - 1)
                    {
                        condition = condition + pageDataVO.WhereCondition[i].Key + " like @p" + i.ToString() + " And ";
                    }
                    else
                    {
                        condition = condition + pageDataVO.WhereCondition[i].Key + " like @p" + i.ToString() + " ";
                    }
                    param.Add("%" + pageDataVO.WhereCondition[i].Value + "%");
                }
            }
            else
            {
                condition = "1=1";
            }

            string sqlStr = string.Format(@"Select count(*) From [Role] where {0}", condition);

            return((int)_dataAccess.ExecuteScalar(sqlStr, param.ToArray()));
        }
Beispiel #4
0
        public void QueryRoleFunctionEditRoleTest()
        {
            #region arrange

            List <RoleVO> reRoleVOList = new List <RoleVO>()
            {
                new RoleVO()
                {
                    RoleID = 1, RoleName = "Admin", Description = "最高權限"
                },
                new RoleVO()
                {
                    RoleID = 2, RoleName = "A", Description = "A1"
                },
                new RoleVO()
                {
                    RoleID = 3, RoleName = "B", Description = "B1"
                }
            };

            PageDataVO pageDataVO = new PageDataVO()
            {
                PageNumber     = 1,
                WhereCondition = new List <KeyValueVO>()
                {
                    new KeyValueVO()
                    {
                        Key   = "RoleName",
                        Value = ""
                    }
                }
            };

            _roleService.Stub(o => o.GetRoleData(pageDataVO)).Return(reRoleVOList);

            #endregion

            #region act

            var resultData = _target.QueryRoleFunctionEditRole(pageDataVO);

            var result = (RoleTableResultVO)((JsonResult)resultData).Data;

            var roleData = result.RoleData.ToList();

            #endregion

            #region assert

            // 驗證資料
            for (int i = 0; i < roleData.Count; i++)
            {
                Assert.AreEqual(roleData[i].RoleID, reRoleVOList[i].RoleID);
                Assert.AreEqual(roleData[i].RoleName, reRoleVOList[i].RoleName);
                Assert.AreEqual(roleData[i].Description, reRoleVOList[i].Description);
            }

            #endregion
        }
Beispiel #5
0
        public void GetFunctionDataTest()
        {
            #region arrange

            List <FunctionVO> reFunctionVO = new List <FunctionVO>()
            {
                new FunctionVO()
                {
                    FunctionID = 1, Url = "Role/RoleManagement", Title = "角色管理", Description = "瀏覽角色管理畫面", IsMenu = true, Parent = 0, ParentName = "No"
                },
                new FunctionVO()
                {
                    FunctionID = 2, Url = "Role/RoleAddEditDelete", Title = "編輯角色", Description = "角色新增修改刪除畫面", IsMenu = true, Parent = 1, ParentName = "角色管理"
                },
                new FunctionVO()
                {
                    FunctionID = 3, Url = "Role/EditRole", Title = "編輯", Description = "編輯角色", IsMenu = false, Parent = -1, ParentName = "Not Menu"
                }
            };

            PageDataVO pageDataVO = new PageDataVO()
            {
                PageNumber     = 1,
                PageSize       = 5,
                WhereCondition = new List <KeyValueVO>()
                {
                    new KeyValueVO()
                    {
                        Key   = "Url",
                        Value = ""
                    }
                }
            };

            _functionBO.Stub(o => o.GetFunctionData(pageDataVO)).Return(reFunctionVO);

            #endregion

            #region act

            var result = _target.GetFunctionData(pageDataVO).ToList();

            #endregion

            #region assert

            for (int i = 0; i < result.Count(); i++)
            {
                Assert.AreEqual(result[i].FunctionID, reFunctionVO[i].FunctionID);
                Assert.AreEqual(result[i].Url, reFunctionVO[i].Url);
                Assert.AreEqual(result[i].Title, reFunctionVO[i].Title);
                Assert.AreEqual(result[i].Description, reFunctionVO[i].Description);
                Assert.AreEqual(result[i].IsMenu, reFunctionVO[i].IsMenu);
                Assert.AreEqual(result[i].Parent, reFunctionVO[i].Parent);
                Assert.AreEqual(result[i].ParentName, reFunctionVO[i].ParentName);
            }

            #endregion
        }
Beispiel #6
0
        public ActionResult QueryFunction(PageDataVO pageDataVO)
        {
            FunctionTableResultVO result = new FunctionTableResultVO();

            result.FunctionData = _functionService.GetFunctionData(pageDataVO);
            result.TableMaxPage = pageDataVO.AllPageNumber;
            return(Json(result, JsonRequestBehavior.AllowGet));
        }
Beispiel #7
0
        public ActionResult QueryRole(PageDataVO pageDataVO)
        {
            RoleTableResultVO result = new RoleTableResultVO();

            result.RoleData     = _roleService.GetRoleData(pageDataVO);
            result.TableMaxPage = pageDataVO.AllPageNumber;
            return(Json(result, JsonRequestBehavior.AllowGet));
        }
Beispiel #8
0
        public void GetRoleDataTest()
        {
            #region arrange

            List <RoleDTO> reRoleDTO = new List <RoleDTO>()
            {
                new RoleDTO()
                {
                    RoleID = 1, RoleName = "Admin", Description = "最高權限"
                },
                new RoleDTO()
                {
                    RoleID = 2, RoleName = "A", Description = "A1"
                },
                new RoleDTO()
                {
                    RoleID = 3, RoleName = "B", Description = "B1"
                },
            };

            PageDataVO pageDataVO = new PageDataVO()
            {
                PageSize       = 3,
                DataCount      = 3,
                PageNumber     = 1,
                LowerBound     = 0,
                UpperBound     = 2,
                WhereCondition = new List <KeyValueVO>()
                {
                    new KeyValueVO()
                    {
                        Key   = "RoleName",
                        Value = ""
                    }
                }
            };

            _dataAccess.Stub(o => o.QueryDataTable <RoleDTO>(Arg <string> .Is.Anything, Arg <object[]> .Is.Anything)).Return(reRoleDTO);

            #endregion

            #region act

            var result = _target.GetRoleData(pageDataVO).ToList();

            #endregion

            #region assert

            for (int i = 0; i < result.Count; i++)
            {
                Assert.AreEqual(result[i].RoleID, reRoleDTO[i].RoleID);
                Assert.AreEqual(result[i].RoleName, reRoleDTO[i].RoleName);
                Assert.AreEqual(result[i].Description, reRoleDTO[i].Description);
            }

            #endregion
        }
Beispiel #9
0
        /// <summary>
        /// 取Table的資料包回來
        /// 可以放在Application_Start、資料有新增、修改、刪除後的時候執行
        /// </summary>
        public static void GetTableDataToCaching()
        {
            PageDataVO pageDataVO = new PageDataVO()
            {
                OrderByColumn = "UserID", OrderByType = "ASC"
            };

            UserCheckVOList = _roleService.GetUserCheckByRole("1", pageDataVO).ToList();
        }
        public IEnumerable <FunctionCheckVO> GetFunctionByRole(RoleVO roleVO)
        {
            PageDataVO pageDataVO = new PageDataVO()
            {
                OrderByColumn = "FunctionID", OrderByType = "ASC"
            };
            var functionCheckData = _functionService.GetFunctionCheckByRole(roleVO.RoleID.ToString(), pageDataVO);

            return(functionCheckData);
        }
Beispiel #11
0
        public void GetFunctionByRoleTest()
        {
            #region arrange

            string id = "1";

            List <FunctionCheckVO> reFunctionCheckVO = new List <FunctionCheckVO>()
            {
                new FunctionCheckVO()
                {
                    FunctionID = 1, Url = "Role/RoleManagement", Title = "角色管理", Description = "瀏覽角色管理畫面", IsMenu = true, ParentName = "No", Check = true
                },
                new FunctionCheckVO()
                {
                    FunctionID = 2, Url = "Role/RoleAddEditDelete", Title = "編輯角色", Description = "角色新增修改刪除畫面", IsMenu = true, ParentName = "角色管理", Check = true
                },
                new FunctionCheckVO()
                {
                    FunctionID = 3, Url = "Role/EditRole", Title = "編輯", Description = "編輯角色", IsMenu = false, ParentName = "Not Menu", Check = false
                }
            };

            PageDataVO pageDataVO = new PageDataVO()
            {
                OrderByColumn = "UserID", OrderByType = "ASC"
            };

            _functionService.Stub(o => o.GetFunctionCheckByRole(Arg <string> .Is.Anything, Arg <PageDataVO> .Is.Anything)).Return(reFunctionCheckVO);

            #endregion

            #region act

            var resultData = _target.GetFunctionByRole(id, pageDataVO);

            var result = (List <FunctionCheckVO>)((JsonResult)resultData).Data;

            #endregion

            #region assert

            for (int i = 0; i < result.Count; i++)
            {
                Assert.AreEqual(result[i].RoleID, reFunctionCheckVO[i].RoleID);
                Assert.AreEqual(result[i].FunctionID, reFunctionCheckVO[i].FunctionID);
                Assert.AreEqual(result[i].Url, reFunctionCheckVO[i].Url);
                Assert.AreEqual(result[i].Title, reFunctionCheckVO[i].Title);
                Assert.AreEqual(result[i].Description, reFunctionCheckVO[i].Description);
                Assert.AreEqual(result[i].IsMenu, reFunctionCheckVO[i].IsMenu);
                Assert.AreEqual(result[i].ParentName, reFunctionCheckVO[i].ParentName);
                Assert.AreEqual(result[i].Check, reFunctionCheckVO[i].Check);
            }

            #endregion
        }
        /// <summary>
        /// 取得Function資料
        /// </summary>
        /// <returns></returns>
        public IEnumerable <FunctionDTO> GetFunctionData(PageDataVO pageDataVO)
        {
            List <string> param = new List <string>();

            string condition = string.Empty;

            if (pageDataVO.WhereCondition != null)
            {
                for (int i = 0; i < pageDataVO.WhereCondition.Count; i++)
                {
                    if (i != pageDataVO.WhereCondition.Count - 1)
                    {
                        if (pageDataVO.WhereCondition[i].Key == "IsMenu")
                        {
                            condition = condition + pageDataVO.WhereCondition[i].Key + " = @p" + i.ToString() + " And ";
                            param.Add(pageDataVO.WhereCondition[i].Value);
                            continue;
                        }
                        else
                        {
                            condition = condition + pageDataVO.WhereCondition[i].Key + " like @p" + i.ToString() + " And ";
                        }
                    }
                    else
                    {
                        if (pageDataVO.WhereCondition[i].Key == "IsMenu")
                        {
                            condition = condition + pageDataVO.WhereCondition[i].Key + " = @p" + i.ToString() + " ";
                            param.Add(pageDataVO.WhereCondition[i].Value);
                            continue;
                        }
                        condition = condition + pageDataVO.WhereCondition[i].Key + " like @p" + i.ToString() + " ";
                    }
                    param.Add("%" + pageDataVO.WhereCondition[i].Value + "%");
                }
            }
            else
            {
                condition = "1=1";
            }

            string sqlStr = string.Format(@"Select [FunctionID], [Url], [Description], [IsMenu], [Parent], [Title] , 
case when A.[Parent] = -1
then 'Not Menu'
when  A.[Parent] = 0 
then 'No'
else (select B.[Title] from [Function] B where B.FunctionID = A.[Parent]) end as 'ParentName'
From (Select ROW_NUMBER() OVER(ORDER BY {0} {1} ) AS row, * from [Function] where {2} ) as A
 where row > @p{3}  and row < @p{4} ", pageDataVO.OrderByColumn, pageDataVO.OrderByType, condition, param.Count, param.Count + 1);

            param.Add(pageDataVO.LowerBound.ToString());
            param.Add(pageDataVO.UpperBound.ToString());

            return(_dataAccess.QueryDataTable <FunctionDTO>(sqlStr, param.ToArray()));
        }
        public IEnumerable <FunctionVO> FunctionAddEditDelete()
        {
            PageDataVO pageDataVO = new PageDataVO()
            {
                PageNumber = 1,
                PageSize   = 0
            };
            var functionData = _functionService.GetFunctionData(pageDataVO);

            return(functionData);
        }
Beispiel #14
0
        public IEnumerable <UserCheckVO> GetUserByRole(RoleVO roleVO)
        {
            PageDataVO pageDataVO = new PageDataVO()
            {
                OrderByColumn = "UserID", OrderByType = "ASC"
            };

            var userCheckData = _roleService.GetUserCheckByRole(roleVO.RoleID.ToString(), pageDataVO);

            return(userCheckData);
        }
Beispiel #15
0
        public IEnumerable <RoleVO> RoleAddEditDelete()
        {
            // Thread.Sleep(1000);
            PageDataVO pageDataVO = new PageDataVO()
            {
                PageNumber = 1,
                PageSize   = 0
            };
            var roleData = _roleService.GetRoleData(pageDataVO);

            return(roleData);
        }
Beispiel #16
0
        public void GetUserByRoleTest()
        {
            #region arrange

            string roleID = "1";

            List <UserCheckVO> reUserCheckVO = new List <UserCheckVO>()
            {
                new UserCheckVO()
                {
                    RoleID = 1, UserID = 1, Check = true, UserName = "******", AccountName = "kevan"
                },
                new UserCheckVO()
                {
                    RoleID = 1, UserID = 2, Check = true, UserName = "******", AccountName = "A"
                },
                new UserCheckVO()
                {
                    RoleID = 1, UserID = 3, Check = false, UserName = "******", AccountName = "B"
                }
            };

            PageDataVO pageDataVO = new PageDataVO()
            {
                OrderByColumn = "UserID", OrderByType = "ASC"
            };

            _roleService.Stub(o => o.GetUserCheckByRole(Arg <string> .Is.Anything, Arg <PageDataVO> .Is.Anything)).Return(reUserCheckVO);

            #endregion

            #region act

            var resultData = _target.GetUserByRole(roleID, pageDataVO);

            var result = (List <UserCheckVO>)((JsonResult)resultData).Data;

            #endregion

            #region assert
            for (int i = 0; i < result.Count; i++)
            {
                Assert.AreEqual(result[i].RoleID, reUserCheckVO[i].RoleID);
                Assert.AreEqual(result[i].UserID, reUserCheckVO[i].UserID);
                Assert.AreEqual(result[i].Check, reUserCheckVO[i].Check);
                Assert.AreEqual(result[i].UserName, reUserCheckVO[i].UserName);
                Assert.AreEqual(result[i].AccountName, reUserCheckVO[i].AccountName);
            }

            #endregion
        }
Beispiel #17
0
        /// <summary>
        /// 取得Role資料
        /// </summary>
        /// <returns></returns>
        public IEnumerable <RoleDTO> GetRoleData(PageDataVO pageDataVO)
        {
            var result = (from role in _db.Role
                          where role.RoleName == pageDataVO.WhereCondition[0].Value
                          orderby role.RoleID
                          select new RoleDTO()
            {
                RoleID = role.RoleID,
                RoleName = role.RoleName,
                Description = role.Description
            });

            return(result.Skip(pageDataVO.LowerBound).Take(pageDataVO.PageSize == null ? 0 : Convert.ToInt32(pageDataVO.PageSize)));
        }
Beispiel #18
0
        /// <summary>
        /// 取得資料總筆數
        /// </summary>
        /// <param name="pageDataVO"></param>
        /// <returns></returns>
        public int GetRoleCount(PageDataVO pageDataVO)
        {
            var result = (from role in _db.Role
                          where role.RoleName == pageDataVO.WhereCondition[0].Value
                          orderby role.RoleID
                          select new RoleDTO()
            {
                RoleID = role.RoleID,
                RoleName = role.RoleName,
                Description = role.Description
            });

            return(result.Count());
        }
Beispiel #19
0
        public void GetUserCheckByRoleTest()
        {
            #region arrange

            string id = "1";

            List <UserCheckDTO> reUserCheckDTO = new List <UserCheckDTO>()
            {
                new UserCheckDTO()
                {
                    UserID = 1, UserName = "******", AccountName = "kevan", Check = true
                },
                new UserCheckDTO()
                {
                    UserID = 2, UserName = "******", AccountName = "A1", Check = true
                },
                new UserCheckDTO()
                {
                    UserID = 3, UserName = "******", AccountName = "B1", Check = false
                }
            };

            PageDataVO pageDataVO = new PageDataVO()
            {
                OrderByColumn = "UserID", OrderByType = "ASC"
            };

            _dataAccess.Stub(o => o.QueryDataTable <UserCheckDTO>(Arg <string> .Is.Anything, Arg <object[]> .Is.Anything)).Return(reUserCheckDTO);

            #endregion

            #region act

            var result = _target.GetUserCheckByRole(id, pageDataVO).ToList();

            #endregion

            #region assert

            for (int i = 0; i < result.Count; i++)
            {
                Assert.AreEqual(result[i].UserID, reUserCheckDTO[i].UserID);
                Assert.AreEqual(result[i].UserName, reUserCheckDTO[i].UserName);
                Assert.AreEqual(result[i].AccountName, reUserCheckDTO[i].AccountName);
                Assert.AreEqual(result[i].Check, reUserCheckDTO[i].Check);
            }

            #endregion
        }
Beispiel #20
0
        /// <summary>
        /// 取得角色設定使用者的資料
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public IEnumerable <UserCheckDTO> GetUserCheckByRole(string id, PageDataVO pageDataVO)
        {
            List <string> param = new List <string>();

            string sqlStr = string.Format(@"SELECT 
case when A.[RoleID] IS NULL then CAST(0 AS BIT) Else CAST(1 AS BIT) end AS 'Check' ,
      B.[UserID],B.AccountName,B.UserName
  FROM 
  (Select * From [RoleUser] where RoleID=@p0) A 
  Right join [User] B on A.UserID = B.UserID 
  Order By B.[{0}] {1}", pageDataVO.OrderByColumn, pageDataVO.OrderByType);

            param.Add(id);

            return(_dataAccess.QueryDataTable <UserCheckDTO>(sqlStr, param.ToArray()));
        }
Beispiel #21
0
        /// <summary>
        /// 取得資料總筆數
        /// </summary>
        /// <param name="pageDataVO"></param>
        /// <returns></returns>
        public int GetFunctionCount(PageDataVO pageDataVO)
        {
            var isMenu = Convert.ToBoolean(pageDataVO.WhereCondition[2].Value);
            var result = (from function in _db.Function
                          where function.Url == pageDataVO.WhereCondition[0].Value &&
                          function.Title == pageDataVO.WhereCondition[1].Value &&
                          function.IsMenu == isMenu
                          orderby function.FunctionID
                          select new FunctionDTO()
            {
                FunctionID = function.FunctionID,
                Url = function.Url,
                Description = function.Description
            });

            return(result.Count());
        }
Beispiel #22
0
        /// <summary>
        /// 取得Function資料
        /// </summary>
        /// <returns></returns>
        public IEnumerable <FunctionDTO> GetFunctionData(PageDataVO pageDataVO)
        {
            var isMenu = Convert.ToBoolean(pageDataVO.WhereCondition[2].Value);
            var result = (from function in _db.Function
                          where function.Url == pageDataVO.WhereCondition[0].Value &&
                          function.Title == pageDataVO.WhereCondition[1].Value &&
                          function.IsMenu == isMenu
                          orderby function.FunctionID
                          select new FunctionDTO()
            {
                FunctionID = function.FunctionID,
                Url = function.Url,
                Description = function.Description
            });

            return(result.Skip(pageDataVO.LowerBound).Take(pageDataVO.PageSize == null ? 0 : Convert.ToInt32(pageDataVO.PageSize)));
        }
Beispiel #23
0
        public void GetRoleDataTest()
        {
            #region arrange

            List<RoleVO> reRoleVOList = new List<RoleVO>()
            {
                new RoleVO(){ RoleID = 1 , RoleName = "Admin" , Description = "最高權限"},
                new RoleVO(){ RoleID = 2 , RoleName = "A" , Description = "A1"},
                new RoleVO(){ RoleID = 3 , RoleName = "B" , Description = "B1"},
            };

            PageDataVO pageDataVO = new PageDataVO()
            {
                PageNumber = 1,
                WhereCondition = new List<KeyValueVO>()
                   {
                        new KeyValueVO()
                        {
                             Key = "RoleName",
                             Value = ""
                        }
                   }
            };

            _roleBO.Stub(o => o.GetRoleData(pageDataVO)).Return(reRoleVOList);

            #endregion

            #region act

            var result = _target.GetRoleData(pageDataVO).ToList();

            #endregion

            #region assert

            for (int i = 0; i < result.Count(); i++)
            {
                Assert.AreEqual(result[i].RoleID, reRoleVOList[i].RoleID);
                Assert.AreEqual(result[i].RoleName, reRoleVOList[i].RoleName);
                Assert.AreEqual(result[i].Description, reRoleVOList[i].Description);
            }

            #endregion
        }
        /// <summary>
        /// 取得角色設定功能的資料
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public IEnumerable <FunctionCheckDTO> GetFunctionCheckByRole(string id, PageDataVO pageDataVO)
        {
            List <string> param = new List <string>();

            string sqlStr = string.Format(@"SELECT 
case when A.[RoleID] IS NULL then CAST(0 AS BIT) Else CAST(1 AS BIT) end AS 'Check' ,
      B.[FunctionID],B.Url,B.Title, B.Description, B.IsMenu , 
case when B.[Parent] = -1
then 'Not Menu'
when  B.[Parent] = 0 
then 'No'
else (select C.[Title] from [Function] C where C.FunctionID = B.[Parent]) end as 'ParentName'
  FROM 
  (Select * From [RoleFunction] where RoleID = @p0 ) A 
  Right join [Function] B on A.FunctionID = B.FunctionID 
  Order By B.[{0}] {1} ", pageDataVO.OrderByColumn, pageDataVO.OrderByType);

            param.Add(id);

            return(_dataAccess.QueryDataTable <FunctionCheckDTO>(sqlStr, param.ToArray()));
        }
Beispiel #25
0
        /// <summary>
        /// 取得Function資料
        /// </summary>
        /// <returns></returns>
        public IEnumerable <FunctionVO> GetFunctionData(PageDataVO pageDataVO)
        {
            pageDataVO.PageSize = pageDataVO.PageSize ?? Convert.ToInt32(ConfigurationManager.AppSettings["TablePageCount"]);

            pageDataVO.DataCount = _functionRepo.GetFunctionCount(pageDataVO);

            if (pageDataVO.PageSize != null && pageDataVO.PageSize != 0)
            {
                if (pageDataVO.DataCount % pageDataVO.PageSize.Value == 0)
                {
                    pageDataVO.AllPageNumber = pageDataVO.DataCount / pageDataVO.PageSize.Value;
                }
                else
                {
                    pageDataVO.AllPageNumber = pageDataVO.DataCount / pageDataVO.PageSize.Value + 1;
                }

                pageDataVO.LowerBound = (pageDataVO.PageNumber - 1) * pageDataVO.PageSize.Value;
                pageDataVO.UpperBound = pageDataVO.LowerBound + pageDataVO.PageSize.Value + 1;
                if (pageDataVO.LowerBound >= pageDataVO.DataCount)
                {
                    pageDataVO.UpperBound = pageDataVO.DataCount + 1;
                    pageDataVO.LowerBound = pageDataVO.UpperBound - (pageDataVO.PageSize.Value + 1);
                }
            }
            else
            {
                pageDataVO.UpperBound = pageDataVO.DataCount + 1;
                pageDataVO.LowerBound = 0;
            }

            if (string.IsNullOrEmpty(pageDataVO.OrderByColumn))
            {
                pageDataVO.OrderByColumn = "FunctionID";
            }

            IEnumerable <FunctionVO> result = Utility.MigrationIEnumerable <FunctionDTO, FunctionVO>(_functionRepo.GetFunctionData(pageDataVO));

            return(result);
        }
        public void GetFunctionCountTest()
        {
            #region arrange

            int reNumber = 3;

            PageDataVO pageDataVO = new PageDataVO()
            {
                PageSize       = 3,
                DataCount      = 3,
                PageNumber     = 1,
                LowerBound     = 0,
                UpperBound     = 2,
                WhereCondition = new List <KeyValueVO>()
                {
                    new KeyValueVO()
                    {
                        Key   = "Url",
                        Value = ""
                    }
                }
            };

            _dataAccess.Stub(o => o.ExecuteScalar(Arg <string> .Is.Anything, Arg <object[]> .Is.Anything)).Return(reNumber);

            #endregion

            #region act

            var result = _target.GetFunctionCount(pageDataVO);

            #endregion

            #region assert

            Assert.AreEqual(result, reNumber);

            #endregion
        }
        public void GetFunctionCheckByRoleTest()
        {
            #region arrange

            string roleID = "1";

            List <FunctionCheckVO> reFunctionCheckVO = new List <FunctionCheckVO>()
            {
                new FunctionCheckVO()
                {
                    RoleID = 1, FunctionID = 1, Url = "Role/RoleManagement", Description = "瀏覽角色管理畫面", Check = true
                },
                new FunctionCheckVO()
                {
                    RoleID = 1, FunctionID = 2, Url = "Role/RoleAddEditDelete", Description = "角色新增修改刪除畫面", Check = true
                },
                new FunctionCheckVO()
                {
                    RoleID = 1, FunctionID = 3, Url = "Role/EditRole", Description = "編輯角色", Check = false
                }
            };

            List <FunctionCheckDTO> reFunctionCheckDTO = new List <FunctionCheckDTO>()
            {
                new FunctionCheckDTO()
                {
                    FunctionID = 1, Url = "Role/RoleManagement", Description = "瀏覽角色管理畫面", Check = true
                },
                new FunctionCheckDTO()
                {
                    FunctionID = 2, Url = "Role/RoleAddEditDelete", Description = "角色新增修改刪除畫面", Check = true
                },
                new FunctionCheckDTO()
                {
                    FunctionID = 3, Url = "Role/EditRole", Description = "編輯角色", Check = false
                }
            };

            _roleFunctionEfRepo.Stub(o => o.GetFunctionCheckByRole(Arg <string> .Is.Anything)).Return(reFunctionCheckDTO);

            PageDataVO pageDataVO = new PageDataVO()
            {
                OrderByColumn = "UserID", OrderByType = "ASC"
            };

            #endregion

            #region act

            var result = _target.GetFunctionCheckByRole(roleID, pageDataVO).ToList();

            #endregion

            #region assert

            for (int i = 0; i < result.Count; i++)
            {
                Assert.AreEqual(result[i].FunctionID, reFunctionCheckVO[i].FunctionID);
                Assert.AreEqual(result[i].Url, reFunctionCheckVO[i].Url);
                Assert.AreEqual(result[i].Description, reFunctionCheckVO[i].Description);
                Assert.AreEqual(result[i].Check, reFunctionCheckVO[i].Check);
            }

            #endregion
        }
Beispiel #28
0
        public ActionResult GetUserByRole(string id, PageDataVO pageDataVO)
        {
            var userCheckData = _roleService.GetUserCheckByRole(id, pageDataVO);

            return(Json(userCheckData, JsonRequestBehavior.AllowGet));
        }
Beispiel #29
0
 /// <summary>
 /// 取得角色設定功能的資料
 /// </summary>
 /// <param name="roleID"></param>
 /// <returns></returns>
 public IEnumerable <FunctionCheckVO> GetFunctionCheckByRole(string roleID, PageDataVO pageDataVO)
 {
     return(_functionBO.GetFunctionCheckByRole(roleID, pageDataVO));
 }
Beispiel #30
0
 /// <summary>
 /// 取得Function資料
 /// </summary>
 /// <returns></returns>
 public IEnumerable <FunctionVO> GetFunctionData(PageDataVO pageDataVO)
 {
     return(_functionBO.GetFunctionData(pageDataVO));
 }