private static List <DataGroupModel> AddFunctionsGroup(System.Collections.IEnumerable groups, DataGroupModelCallBack callBack) { var groupModelList = new List <DataGroupModel>(); foreach (AggregateFunctionsGroup group in groups) { DataGroupModel groupModel = new DataGroupModel() { GridGroupModel = CreateTelerikGroupModel(group) }; if (group.HasSubgroups) { groupModel.SubGroups.AddRange(AddFunctionsGroup(group.Items, callBack)); } else { callBack(group.Items, groupModel); } groupModelList.Add(groupModel); } return(groupModelList); }
public static void ConvertDataSourceResult(DataListResponse response, DataSourceResult dataSourceResult, DataGroupModelCallBack callBack) { response.GridData = new DataGroupModel(); if (dataSourceResult.Data is List <AggregateFunctionsGroup> ) { // Process the grouped Data response.GridData.SubGroups.AddRange(AddFunctionsGroup(dataSourceResult.Data, callBack)); response.Result.TotalRecords = dataSourceResult.Total; } else { // Process the flat item list callBack(dataSourceResult.Data, response.GridData); response.GridData.GridGroupModel = new TelerikGroupModel() { ItemCount = dataSourceResult.Total, Member = string.Empty }; response.Result.TotalRecords = dataSourceResult.Total; } }