public async void PostAndDelete_Ok()
        {
            var ret = await Client.PostAsJsonAsync <Group, bool>("", new Group()
            {
                GroupCode = "002", GroupName = "UnitTest-Group", Description = "UnitTest-Desc"
            });

            Assert.True(ret);

            var ids = GroupHelper.Retrieves().Where(d => d.GroupName == "UnitTest-Group").Select(d => d.Id);

            Assert.True(await Client.DeleteAsJsonAsync <IEnumerable <string>, bool>(ids));
        }
        public void SaveByGroupId_Ok()
        {
            var groupId = GroupHelper.Retrieves().FirstOrDefault(g => g.GroupName == "Admin").Id;
            var id      = UserHelper.Retrieves().FirstOrDefault(u => u.UserName == "Admin").Id;

            Assert.True(UserHelper.SaveByGroupId(groupId, new string[] { id }));

            var users = UserHelper.RetrievesByGroupId(groupId);

            Assert.NotEmpty(users.Where(u => u.Checked == "checked"));

            Assert.True(UserHelper.SaveByGroupId(groupId, new string[0]));
        }
        public async void PutById_Ok()
        {
            var ids = GroupHelper.Retrieves().Select(g => g.Id);
            var uid = UserHelper.Retrieves().Where(u => u.UserName == "Admin").First().Id;
            var ret = await Client.PutAsJsonAsync <IEnumerable <string>, bool>($"{uid}?type=user", ids);

            Assert.True(ret);

            var rid = RoleHelper.Retrieves().Where(r => r.RoleName == "Administrators").First().Id;

            ret = await Client.PutAsJsonAsync <IEnumerable <string>, bool>($"{rid}?type=role", ids);

            Assert.True(ret);
        }
Exemple #4
0
        public async void PostById_Ok()
        {
            var uid = UserHelper.Retrieves().Where(u => u.UserName == "Admin").First().Id;
            var gid = GroupHelper.Retrieves().Where(g => g.GroupName == "Admin").First().Id;
            var mid = MenuHelper.RetrieveAllMenus("Admin").Where(m => m.Url == "~/Admin/Index").First().Id;

            var ret = await Client.PostAsJsonAsync <string, IEnumerable <object> >($"{uid}?type=user", string.Empty);

            Assert.NotEmpty(ret);

            ret = await Client.PostAsJsonAsync <string, IEnumerable <object> >($"{gid}?type=group", string.Empty);

            Assert.NotEmpty(ret);

            ret = await Client.PostAsJsonAsync <string, IEnumerable <object> >($"{mid}?type=menu", string.Empty);

            Assert.NotEmpty(ret);
        }
Exemple #5
0
        public async void PostById_Ok()
        {
            var rid = RoleHelper.Retrieves().Where(r => r.RoleName == "Administrators").First().Id;

            var ret = await Client.PostAsJsonAsync <string, IEnumerable <object> >($"{rid}?type=role", string.Empty);

            Assert.NotNull(ret);

            var gid = GroupHelper.Retrieves().Where(r => r.GroupName == "Admin").First().Id;

            ret = await Client.PostAsJsonAsync <string, IEnumerable <object> >($"{gid}?type=group", string.Empty);

            Assert.NotNull(ret);

            ret = await Client.PostAsJsonAsync <string, IEnumerable <object> >("UnitTest?type=reset", string.Empty);

            Assert.NotNull(ret);
        }
Exemple #6
0
        /// <summary>
        /// 查询方法
        /// </summary>
        /// <param name="pageIndex">页码</param>
        /// <param name="pageItems">每页显示数据条目数量</param>
        protected override QueryData <Group> Query(int pageIndex, int pageItems)
        {
            var data = GroupHelper.Retrieves();

            if (!string.IsNullOrEmpty(QueryModel.GroupName))
            {
                data = data.Where(d => d.GroupName.Contains(QueryModel.GroupName, StringComparison.OrdinalIgnoreCase));
            }
            if (!string.IsNullOrEmpty(QueryModel.Description))
            {
                data = data.Where(d => d.Description != null && d.Description.Contains(QueryModel.Description, StringComparison.OrdinalIgnoreCase));
            }
            var totalCount = data.Count();
            var items      = data.Skip((pageIndex - 1) * pageItems).Take(pageItems);

            return(new QueryData <Group>()
            {
                Items = items, TotalCount = totalCount, PageIndex = pageIndex, PageItems = pageItems
            });
        }
Exemple #7
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public QueryData <object> RetrieveData()
        {
            // int limit, int offset, string name, string price, string sort, string order
            var data = GroupHelper.Retrieves();

            if (!string.IsNullOrEmpty(GroupName))
            {
                data = data.Where(t => t.GroupName.Contains(GroupName));
            }
            if (!string.IsNullOrEmpty(Description))
            {
                data = data.Where(t => t.Description.Contains(Description));
            }
            var ret = new QueryData <object>();

            ret.total = data.Count();
            data      = Order == "asc" ? data.OrderBy(t => t.GroupName) : data.OrderByDescending(t => t.GroupName);
            ret.rows  = data.Skip(Offset).Take(Limit).Select(g => new { g.Id, g.GroupName, g.Description });
            return(ret);
        }
Exemple #8
0
        /// <summary>
        /// 获取指定用户的所有菜单
        /// </summary>
        /// <param name="userName"></param>
        /// <returns></returns>
        public override IEnumerable <BootstrapMenu> RetrieveAllMenus(string userName)
        {
            var user = UserHelper.Retrieves().Cast <User>().FirstOrDefault(u => u.UserName.ToLowerInvariant() == userName.ToLowerInvariant());

            if (user == null)
            {
                return(Enumerable.Empty <BootstrapMenu>());
            }

            var roles  = RoleHelper.Retrieves().Cast <Role>();
            var groups = GroupHelper.Retrieves().Cast <Group>();

            // 通过用户获取 组列表相关联的角色列表
            var userRoles = user.Groups.Aggregate(user.Roles.ToList(), (r, g) =>
            {
                var groupRoles = groups.Where(group => group.Id == g).FirstOrDefault()?.Roles;
                if (groupRoles != null)
                {
                    r.AddRange(groupRoles);
                }
                return(r);
            }).Distinct().ToList();

            var allRoles = roles.Where(r => userRoles.Any(rl => rl == r.Id)).ToList();
            var menus    = DbManager.Menus.Find(FilterDefinition <BootstrapMenu> .Empty).ToList()
                           .Where(m => allRoles.Any(r => r.RoleName.Equals("Administrators", StringComparison.OrdinalIgnoreCase) || r.Menus.Any(rm => rm.Equals(m.Id, StringComparison.OrdinalIgnoreCase))))
                           .ToList();

            var dicts = DictHelper.RetrieveDicts().Where(m => m.Category == "菜单");

            menus.ForEach(m =>
            {
                m.CategoryName = dicts.FirstOrDefault(d => d.Code == m.Category)?.Name ?? "";
                if (m.ParentId != "0")
                {
                    m.ParentName = menus.FirstOrDefault(p => p.Id == m.ParentId)?.Name ?? "";
                }
            });

            return(menus);
        }
Exemple #9
0
        public async void PutById_Ok()
        {
            var uid = UserHelper.Retrieves().Where(u => u.UserName == "Admin").First().Id;
            var gid = GroupHelper.Retrieves().Where(g => g.GroupName == "Admin").First().Id;
            var mid = MenuHelper.RetrieveAllMenus("Admin").Where(m => m.Url == "~/Admin/Index").First().Id;
            var ids = RoleHelper.Retrieves().Select(r => r.Id);

            var ret = await Client.PutAsJsonAsync <IEnumerable <string>, bool>($"{uid}?type=user", ids);

            Assert.True(ret);

            ret = await Client.PutAsJsonAsync <IEnumerable <string>, bool>($"{gid}?type=group", ids);

            Assert.True(ret);

            ret = await Client.PutAsJsonAsync <IEnumerable <string>, bool>($"{mid}?type=menu", ids);

            Assert.True(ret);

            ret = await Client.PutAsJsonAsync <IEnumerable <string>, bool>($"{mid}?type=app", ids);

            Assert.True(ret);
        }
Exemple #10
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="userName"></param>
        /// <returns></returns>
        public override IEnumerable <string> RetrievesByUserName(string userName)
        {
            var roles = new List <string>();
            var user  = UserHelper.Retrieves().Cast <User>().FirstOrDefault(u => u.UserName.ToLowerInvariant() == userName.ToLowerInvariant());

            if (user != null)
            {
                // 用户所属角色
                var role = RoleHelper.Retrieves();
                roles.AddRange(role.Where(r => user.Roles.Any(rl => rl == r.Id)).Select(r => r.RoleName));

                // 用户所属部门 部门所属角色
                GroupHelper.Retrieves().Cast <Group>().Where(group => user.Groups.Any(g => g == group.Id)).ToList().ForEach(g =>
                {
                    roles.AddRange(role.Where(r => g.Roles.Any(rl => rl == r.Id)).Select(r => r.RoleName));
                });

                if (roles.Count == 0)
                {
                    roles.Add("Default");
                }
            }
            return(roles.Distinct());
        }
Exemple #11
0
 public void Retrieves_Ok()
 {
     Assert.NotEmpty(GroupHelper.Retrieves());
 }
Exemple #12
0
        public void SaveByRoleId_Ok()
        {
            var roleId = RoleHelper.Retrieves().FirstOrDefault(r => r.RoleName == "Administrators").Id;

            Assert.True(GroupHelper.SaveByRoleId(roleId, GroupHelper.Retrieves().Select(g => g.Id)));
        }
Exemple #13
0
        public void SaveByUserId_Ok()
        {
            var userId = UserHelper.Retrieves().FirstOrDefault(r => r.UserName == "Admin").Id;

            Assert.True(GroupHelper.SaveByUserId(userId, GroupHelper.Retrieves().Select(g => g.Id)));
        }
Exemple #14
0
        public void SaveByGroupId_Ok()
        {
            var gId = GroupHelper.Retrieves().FirstOrDefault(g => g.GroupName == "Admin").Id;

            RoleHelper.SaveByGroupId(gId, RoleHelper.Retrieves().Where(r => r.RoleName == "Administrators").Select(r => r.Id));
        }
 public Group Get(string id)
 {
     return(GroupHelper.Retrieves().FirstOrDefault(t => t.Id == id));
 }