Esempio n. 1
0
        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()
            });
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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);
        }