private static PermissionView.MenuView Combine(PermissionView.MenuView first, PermissionView.MenuView second) { var children = new Dictionary <Guid, PermissionView.SubMenuView>(); if (first.Children != null) { foreach (var item in first.Children) { children.Add(item.Id, item); } } if (second.Children != null) { foreach (var item in second.Children) { if (!children.ContainsKey(item.Id)) { children.Add(item.Id, item); } } } return(new PermissionView.MenuView() { Id = first.Id, Name = first.Name, Children = children.Values.ToList() }); }
public List <PermissionView.MenuView> QueryPremissionRolePermissions(Guid permissionRole, Website website) { var result = new List <DataTransferObject.Permission.PermissionView.MenuView>(); var sql = "SELECT [Website],[MenuId],[MenuName],[SubMenuId],[SubMenuName] FROM dbo.V_PermissionRole" + " WHERE RoleId=@ROLEID AND Website=@WEBSITE ORDER BY MenuSortLevel,MenuId,SubMenuSortLevel"; using (var dbOperator = new DbOperator(Provider, ConnectionString)) { dbOperator.AddParameter("ROLEID", permissionRole); dbOperator.AddParameter("WEBSITE", (byte)website); DataTransferObject.Permission.PermissionView.MenuView menuView = null; using (var reader = dbOperator.ExecuteReader(sql)) { while (reader.Read()) { var currentMenuId = reader.GetGuid(1); if (menuView == null || menuView.Id != currentMenuId) { menuView = new PermissionView.MenuView() { Id = currentMenuId, Name = reader.GetString(2), Children = new List <PermissionView.SubMenuView>() }; result.Add(menuView); } menuView.Children.Add(new PermissionView.SubMenuView() { Id = reader.GetGuid(3), Name = reader.GetString(4) }); } } } return(result); }
public List <PermissionView.MenuView> QueryCompanyPermission(Guid company, Domain.PermissionType permissionType, Website website) { var result = new List <PermissionView.MenuView>(); var sql = "SELECT [Website],[MenuId],[MenuName],[SubMenuId],[SubMenuName] FROM dbo.V_CompanyPermission" + " WHERE Company=@Company AND PermissionType=@PermissionType AND WebSite=@WebSite ORDER BY MenuSortLevel,MenuId,SubMenuSortLevel,SubMenuId"; using (var dbOperator = new DbOperator(Provider, ConnectionString)) { dbOperator.AddParameter("Company", company); dbOperator.AddParameter("PermissionType", (byte)permissionType); dbOperator.AddParameter("WebSite", (byte)website); PermissionView.MenuView menuView = null; using (var reader = dbOperator.ExecuteReader(sql)) { while (reader.Read()) { var currentMenuId = reader.GetGuid(1); if (menuView == null || menuView.Id != currentMenuId) { menuView = new PermissionView.MenuView() { Id = currentMenuId, Name = reader.GetString(2), Children = new List <PermissionView.SubMenuView>() }; result.Add(menuView); } menuView.Children.Add(new PermissionView.SubMenuView() { Id = reader.GetGuid(3), Name = reader.GetString(4) }); } } } return(result); }
public List <PermissionView.MenuView> QueryWebsiteMenu(Website website) { var result = new List <PermissionView.MenuView>(); var sql = "SELECT [Website],[MenuId],[MenuName],[SubMenuId],[SubMenuName] FROM dbo.V_UserRolePermission "; sql += "WHERE WebSite=@WebSite ORDER BY MenuSortLevel,MenuId,SubMenuSortLevel,SubMenuId"; using (var dbOperator = new DbOperator(Provider, ConnectionString)) { dbOperator.AddParameter("WebSite", (byte)website); PermissionView.MenuView menuView = null; using (var reader = dbOperator.ExecuteReader(sql)) { while (reader.Read()) { var currentMenuId = reader.GetGuid(1); if (menuView == null || menuView.Id != currentMenuId) { menuView = new PermissionView.MenuView() { Id = currentMenuId, Name = reader.GetString(2), Children = new List <PermissionView.SubMenuView>() }; result.Add(menuView); } menuView.Children.Add(new PermissionView.SubMenuView() { Id = reader.GetGuid(3), Name = reader.GetString(4) }); } } } return(result); }
public IEnumerable <PermissionView.MenuView> QueryValidMenus(Website website) { var result = new List <PermissionView.MenuView>(); var sql = "SELECT TFIRST.Id,TFIRST.Name,TSECOND.Id,TSECOND.Name" + " FROM dbo.T_Menu TFIRST LEFT JOIN dbo.T_Menu TSECOND ON TFIRST.Id=TSECOND.Parent AND TSECOND.Depth=2 AND TSECOND.Valid=1" + " WHERE TFIRST.Depth=1 AND TFIRST.Valid=1 AND TFIRST.Website=@WEBSITE" + " ORDER BY TFIRST.SortLevel,TFIRST.Id,TSECOND.SortLevel"; using (var dbOperator = new DbOperator(Provider, ConnectionString)) { dbOperator.AddParameter("WEBSITE", (byte)website); using (var reader = dbOperator.ExecuteReader(sql)) { PermissionView.MenuView menu = null; while (reader.Read()) { var currentMenuId = reader.GetGuid(0); if (menu == null || menu.Id != currentMenuId) { menu = new PermissionView.MenuView() { Id = currentMenuId, Name = reader.GetString(1), Children = new List <PermissionView.SubMenuView>() }; result.Add(menu); } if (!reader.IsDBNull(2)) { menu.Children.Add(new PermissionView.SubMenuView() { Id = reader.GetGuid(2), Name = reader.GetString(3) }); } } } } return(result); }