public void Apply_FiltersItemsByIgnoringCase() { StringContainsFilter filter = new StringContainsFilter { Method = "contains", Values = new[] { "Est" } }; Expression <Func <GridModel, String> > expression = (model) => model.Name; IQueryable <GridModel> items = new[] { new GridModel { Name = null }, new GridModel { Name = "Tes" }, new GridModel { Name = "test" }, new GridModel { Name = "TEST" } }.AsQueryable(); IQueryable expected = items.Where(model => model.Name != null && model.Name.ToUpper().Contains("EST")); IQueryable actual = items.Where(expression, filter); Assert.Equal(expected, actual); }
public void Process_FiltersItemsWithCaseInsensitiveComparison() { StringContainsFilter <GridModel> filter = new StringContainsFilter <GridModel>(); Expression <Func <GridModel, String> > expression = (model) => model.Name; filter.FilteredExpression = expression; filter.Value = "Est"; IQueryable <GridModel> models = new[] { new GridModel { Name = null }, new GridModel { Name = "Tes" }, new GridModel { Name = "test" }, new GridModel { Name = "TEst" }, new GridModel { Name = "Tst22" }, new GridModel { Name = "TTEst2" } }.AsQueryable(); IQueryable expected = models.Where(model => model.Name != null && model.Name.ToUpper().Contains("EST")); IQueryable actual = filter.Process(models); CollectionAssert.AreEqual(expected, actual); }
public void Apply_FiltersItemsByIgnoringCase() { Expression <Func <GridModel, String> > expression = (model) => model.Name; StringContainsFilter filter = new StringContainsFilter(); filter.Value = "Est"; IQueryable <GridModel> items = new[] { new GridModel { Name = null }, new GridModel { Name = "Tes" }, new GridModel { Name = "test" }, new GridModel { Name = "TEst" }, new GridModel { Name = "Tst22" }, new GridModel { Name = "TTEst2" } }.AsQueryable(); IQueryable expected = items.Where(model => model.Name != null && model.Name.ToUpper().Contains("EST")); IQueryable actual = Filter(items, filter.Apply(expression.Body), expression); Assert.Equal(expected, actual); }
public void Apply_FiltersMultipleItems() { StringContainsFilter filter = new StringContainsFilter { Method = "contains", Values = new[] { "", "Est" } }; Expression <Func <GridModel, String> > expression = (model) => model.Name; Assert.Null(filter.Apply(expression)); }
private void UpdateTable() { IEnumerable <Player> players = NBAContext.Instance.Player.ToList(); if (postionComboBox.SelectedIndex != 0) { players = players.Where(p => p.MainPositionName == postionComboBox.SelectedItem); } if (countryComboBox.SelectedIndex != 0) { players = players.Where(p => p.Country == countryComboBox.SelectedItem); } players = new StringContainsFilter <Player>(nameTextBox.Text, p => p.FullName).Use(players); countTextBlock.Text = "Total players: " + players.Count().ToString(); playerDataGrid.ItemsSource = players; }
public void Apply_FiltersItemsByIgnoringCase() { Expression<Func<GridModel, String>> expression = (model) => model.Name; StringContainsFilter filter = new StringContainsFilter(); filter.Value = "Est"; IQueryable<GridModel> items = new[] { new GridModel { Name = null }, new GridModel { Name = "Tes" }, new GridModel { Name = "test" }, new GridModel { Name = "TEst" }, new GridModel { Name = "Tst22" }, new GridModel { Name = "TTEst2" } }.AsQueryable(); IQueryable expected = items.Where(model => model.Name != null && model.Name.ToUpper().Contains("EST")); IQueryable actual = Filter(items, filter.Apply(expression.Body), expression); Assert.Equal(expected, actual); }