public EntityData <Group> GetActiveGroups(List <SortCollection> sorted, int?skip, int?take, string searchKey = null, List <FilterCollection> filterCollection = null) { var skipValue = skip.HasValue ? skip.Value : 0; var takeValue = take.HasValue ? take.Value : 10; var orderby = OrderByType.Asc; var searchDescriptor = new List <String> { "Name", "Description" }; var whereColumns = new List <ConditionColumn> { new ConditionColumn { ColumnName = GlobalAppSettings.DbColumns.DB_Group.IsActive, Condition = Conditions.Equals, Value = true } }; var query = _queryBuilder.SelectAllRecordsFromTable(GlobalAppSettings.DbColumns.DB_Group.DB_TableName, whereColumns); var data = _dataProvider.ExecuteReaderQuery(_groupManagement.FilteringHelper(query, searchKey, filterCollection, sorted, searchDescriptor)); var result = data.DataTable.AsEnumerable().Select(row => new Group { GroupId = row.Field <int>(GlobalAppSettings.DbColumns.DB_Group.GroupId), GroupName = row.Field <string>(GlobalAppSettings.DbColumns.DB_Group.Name), GroupDescription = row.Field <string>(GlobalAppSettings.DbColumns.DB_Group.Description), GroupColor = row.Field <string>(GlobalAppSettings.DbColumns.DB_Group.Color), CanDelete = (row.Field <int>(GlobalAppSettings.DbColumns.DB_Group.GroupId) == 1) ? false : true }).Skip(skipValue).Take(takeValue).ToList(); return(new EntityData <Group> { result = result, count = data.DataTable.Rows.Count }); }