コード例 #1
0
ファイル: Users.cs プロジェクト: stephengunter/PosterExam
        public static void LoadRolesOptions(this UsersAdminModel model, IEnumerable <IdentityRole> roles, string emptyText = "全部")
        {
            var options = roles.Select(x => x.ToOption()).ToList();

            if (!String.IsNullOrEmpty(emptyText))
            {
                options.Insert(0, new BaseOption <string>("", emptyText));
            }

            model.RolesOptions = options;
        }
コード例 #2
0
        public async Task <ActionResult> Index(string role = "", string keyword = "", int page = 1, int pageSize = 10)
        {
            var model = new UsersAdminModel();

            if (page < 1)             //初次載入頁面
            {
                var roles = _usersService.FetchRoles();
                model.LoadRolesOptions(roles);

                page = 1;
            }

            var users = await _usersService.FetchUsersAsync(role);

            if (users.IsNullOrEmpty())
            {
                model.PagedList = users.GetPagedList(_mapper, page, pageSize);
                return(Ok(model));
            }

            var keywords = keyword.GetKeywords();

            if (keywords.HasItems())
            {
                users = users.FilterByKeyword(keywords);
            }

            var pagedList = users.GetPagedList(_mapper, page, pageSize);

            foreach (var item in pagedList.ViewList)
            {
                var roles = _usersService.GetRolesByUserId(item.Id);
                item.Roles = String.Join(",", roles.Select(r => r.Name));
            }

            model.PagedList = pagedList;

            return(Ok(model));
        }