示例#1
0
        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);
        }