// lambda 表达式 分组,并且分页
/// <summary>
/// 获取所有组织机构数据(按价格名称分组)
/// </summary>
/// <returns></returns>
public string PriceStandardSelectAllGroupBy()
{
IList<PriceStandard> mPriceStandards = new List<PriceStandard>();
IList<PriceStandard> mGroupPriceStandards = new List<PriceStandard>();
int mTotal = 0;
int mStart = 0;
int mLimt = 0;
if (Request.Params["id"] != null && !string.IsNullOrEmpty(Request.Params["id"].ToString()))
{
mPriceStandards.Add(PriceStandardSrv.GetById(Request.Params["id"].ToString()));
mTotal = 1;
}
else
{
// 设置查询参数
var mConditions = new PriceStandard();
TryUpdateModel(mConditions);
// 设置分页参数
mStart = int.Parse(Request.Params["start"]);
mLimt = int.Parse(Request.Params["limit"]);
mConditions.rowStart = mStart + 1;
mConditions.rowEnd = mStart + mLimt;
// 设置排序参数
if (!string.IsNullOrEmpty(Request.Params["sort"]))
{
mConditions.sorts = JsonConvert.DeserializeObject<List<Sort>>(Request.Params["sort"]);
}
else
{
mConditions.sorts = new List<Sort>() { new Sort() { property = "id", direction = "DESC" } };
}
mPriceStandards = PriceStandardSrv.SelectAll();
mGroupPriceStandards = mPriceStandards
.GroupBy(m => new { m.priceName })
.Select(g => new PriceStandard
{
priceName = g.Key.priceName,
}).ToList<PriceStandard>();
mTotal = mGroupPriceStandards.Count();
mGroupPriceStandards = mGroupPriceStandards
.Skip(mStart * mLimt)
.Take(mLimt)
.ToList<PriceStandard>();
}
var output = JsonConvert.SerializeObject(mGroupPriceStandards, new IsoDateTimeConverter());
var returnStr = @"{
success: true,
total: " + mTotal.ToString() + @",
data: " + output + @"}";
return returnStr;
}
//linq 分组
IList<PriceStandard> mGroupPriceStandards = new List<PriceStandard>();
mGroupPriceStandards = (from m in mPriceStandards
group m by new { m.priceName, m.salesTypeName } into g
select new PriceStandard
{
priceName = g.Key.priceName,
salesTypeName = g.Key.salesTypeName
}).ToList<PriceStandard>();