private async Task <IEnumerable <GroupPowerViewModel> > RolePower_GetDataAsync(PagingInfoViewModel pagingInfo) { // Client side GroupBy is not supported. // https://stackoverflow.com/questions/58138556/client-side-groupby-is-not-supported // https://stackoverflow.com/questions/60432078/asp-net-core-web-api-client-side-groupby-is-not-supported //var q = DB.Powers.GroupBy(p => p.GroupName); //if (pagingInfo.SortField == "GroupName") //{ // if (pagingInfo.SortDirection == "ASC") // { // q = q.OrderBy(g => g.Key); // } // else // { // q = q.OrderByDescending(g => g.Key); // } //} //var powers = await q.ToListAsync(); var powers = (await DB.Powers.ToListAsync()).GroupBy(p => p.GroupName); if (pagingInfo.SortField == "GroupName") { if (pagingInfo.SortDirection == "ASC") { powers = powers.OrderBy(g => g.Key); } else { powers = powers.OrderByDescending(g => g.Key); } } List <GroupPowerViewModel> groupPowers = new List <GroupPowerViewModel>(); foreach (var power in powers) { var groupPower = new GroupPowerViewModel(); groupPower.GroupName = power.Key; JArray ja = new JArray(); foreach (var powerItem in power.ToList()) { JObject jo = new JObject(); jo.Add("id", powerItem.ID); jo.Add("name", powerItem.Name); jo.Add("title", powerItem.Title); ja.Add(jo); } groupPower.Powers = ja; groupPowers.Add(groupPower); } return(groupPowers); }
private List <GroupPowerViewModel> RolePower_GetData() { string sql1 = string.Empty; string sql2 = string.Empty; if (GetUserType().Equals("3")) //如果登录用户是客户 { sql1 = sql1 + " IsCustomerLook=1"; sql2 = sql2 + " and b.IsCustomerLook=1"; } Hashtable tableGroup = Sys_PowersDal.SearchGroupName(0, 0, "GroupName", "ASC", sql1); DataTable dtGroup = (DataTable)tableGroup["data"]; List <GroupPowerViewModel> groupPowers = new List <GroupPowerViewModel>(); for (int i = 0; i < dtGroup.Rows.Count; i++) { var groupPower = new GroupPowerViewModel(); groupPower.GroupName = dtGroup.Rows[i][0].ToString(); Hashtable table = Sys_PowersDal.SearchGroupList(0, 0, "Name", "DESC", " and a.GroupName='" + dtGroup.Rows[i][0].ToString() + "'" + sql2); DataTable dt = (DataTable)table["data"]; JArray ja = new JArray(); for (int j = 0; j < dt.Rows.Count; j++) { JObject jo = new JObject(); jo.Add("id", dt.Rows[j]["ID"].ToString()); jo.Add("name", dt.Rows[j]["Name"].ToString()); jo.Add("title", dt.Rows[j]["Title"].ToString()); ja.Add(jo); } groupPower.Powers = ja; groupPowers.Add(groupPower); } return(groupPowers); }