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; }
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)); }