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 QueryStringSortSettings(IQueryDictionary <StringValues> query) { if (query == null) { throw new ArgumentException("No http context here!"); } Query = query; ColumnQueryParameterName = DefaultColumnQueryParameter; DirectionQueryParameterName = DefaultDirectionQueryParameter; string[] sortings = Query.Get(ColumnOrderValue.DefaultSortingQueryParameter).Count > 0 ? Query.Get(ColumnOrderValue.DefaultSortingQueryParameter).ToArray() : null; if (sortings != null) { foreach (string sorting in sortings) { ColumnOrderValue column = CreateColumnData(sorting); if (column != ColumnOrderValue.Null) { _sortValues.Add(column); } } } }
private bool ValidateSorting <T, TNext>(TestGrid grid, Func <TestModel, T> orderExpression, string columnName, GridSortDirection direction, Func <TestModel, TNext> orderExpression2, string columnName2, GridSortDirection?direction2, IComparer <T> comparer, IComparer <TNext> nextComparer) { 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: if (comparer == null) { etalonCollection = _repo.GetAll().OrderBy(orderExpression); } else { etalonCollection = _repo.GetAll().OrderBy(orderExpression, comparer); } break; case GridSortDirection.Descending: if (comparer == null) { etalonCollection = _repo.GetAll().OrderByDescending(orderExpression); } else { etalonCollection = _repo.GetAll().OrderByDescending(orderExpression, comparer); } 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: if (comparer == null) { etalonCollection = _repo.GetAll().OrderBy(orderExpression2); } else { etalonCollection = _repo.GetAll().OrderBy(orderExpression2, nextComparer); } break; case GridSortDirection.Descending: if (comparer == null) { etalonCollection = _repo.GetAll().OrderByDescending(orderExpression2); } else { etalonCollection = _repo.GetAll().OrderByDescending(orderExpression2, nextComparer); } break; default: throw new ArgumentOutOfRangeException("direction"); } } IEnumerable <TestModel> resultCollection = grid.GetItemsToDisplay(); if (!ValidateCollectionsTheSame(resultCollection, etalonCollection)) { return(false); } return(true); }
public async Task RemoveExtSorting(ColumnOrderValue column) { Grid.RemoveQueryString(ColumnOrderValue.DefaultSortingQueryParameter, column.ToString()); await UpdateGrid(); await OnExtSortChanged(); }
protected async Task CancelButtonClicked(ColumnOrderValue column) { await GridComponent.RemoveExtSorting(column); }
protected async Task TitleButtonClicked(ColumnOrderValue column) { await GridComponent.ChangeExtSorting(column); }