private bool ValidateSorting <T, TNext>(TestGrid grid, Func <TestModel, T> orderExpression, string columnName, GridSortDirection direction, Func <TestModel, TNext> orderExpression2, string columnName2, GridSortDirection?direction2) { var payload = new ColumnOrderValue(columnName, direction, grid.Settings.SortSettings.SortValues.Count + 1); grid.Query.AddParameter(ColumnOrderValue.DefaultSortingQueryParameter, payload.ToString()); grid.Settings = new QueryStringGridSettingsProvider(grid.Query); IOrderedEnumerable <TestModel> etalonCollection; switch (direction) { case GridSortDirection.Ascending: etalonCollection = _repo.GetAll().OrderBy(orderExpression); break; case GridSortDirection.Descending: etalonCollection = _repo.GetAll().OrderByDescending(orderExpression); break; default: throw new ArgumentOutOfRangeException("direction"); } if (orderExpression2 != null && !string.IsNullOrWhiteSpace(columnName2) && direction2.HasValue) { payload = new ColumnOrderValue(columnName2, direction2.Value, grid.Settings.SortSettings.SortValues.Count + 1); grid.Query.AddParameter(ColumnOrderValue.DefaultSortingQueryParameter, payload.ToString()); grid.Settings = new QueryStringGridSettingsProvider(grid.Query); switch (direction2.Value) { case GridSortDirection.Ascending: etalonCollection = _repo.GetAll().OrderBy(orderExpression2); break; case GridSortDirection.Descending: etalonCollection = _repo.GetAll().OrderByDescending(orderExpression2); break; default: throw new ArgumentOutOfRangeException("direction"); } } IEnumerable <TestModel> resultCollection = grid.GetItemsToDisplay(); if (!ValidateCollectionsTheSame(resultCollection, etalonCollection)) { return(false); } return(true); }
public async Task ChangeExtSorting(ColumnOrderValue column) { var newColumnOrderValue = new ColumnOrderValue { ColumnName = column.ColumnName, Direction = column.Direction == GridSortDirection.Ascending ? GridSortDirection.Descending : GridSortDirection.Ascending, Id = column.Id }; Grid.ChangeQueryString(ColumnOrderValue.DefaultSortingQueryParameter, column.ToString(), newColumnOrderValue.ToString()); await UpdateGrid(); }
public async Task RemoveExtSorting(ColumnOrderValue column) { Grid.RemoveQueryString(ColumnOrderValue.DefaultSortingQueryParameter, column.ToString()); await UpdateGrid(); await OnExtSortChanged(); }