public async Task <IEnumerable <CharacterDto> > List(string sort = null, bool asc = true, string groupId = null, string name = null, int scoreMin = int.MinValue, int scoreMax = int.MaxValue, int pageSize = 50, int pageNumber = 1) { var filter = new CharacterFilterDto { Name = name, PageSize = pageSize, RequestedPageNumber = pageNumber, ScoreMin = scoreMin, ScoreMax = scoreMax, SortAscending = asc, SortCriteria = sort }; if (groupId != null) { filter.GroupId = Guid.Parse(groupId); } var characters = (await CharacterFacade.GetCharactersByFilterAsync(filter)).Items; return(characters); }
private IPredicate FilterCharacterName(CharacterFilterDto filter) { return(string.IsNullOrWhiteSpace(filter.Name) ? null : new SimplePredicate(nameof(Character.Name), ValueComparingOperator.StringContains, filter.Name)); }
private IPredicate FilterGroup(CharacterFilterDto filter) { return(!filter.GroupId.HasValue ? null : new SimplePredicate(nameof(Character.GroupId), ValueComparingOperator.Equal, filter.GroupId.Value)); }
private IPredicate FilterScore(CharacterFilterDto filter) { return(new CompositePredicate(new List <IPredicate> { new SimplePredicate(nameof(Character.Score), ValueComparingOperator.GreaterThanOrEqual, filter.ScoreMin), new SimplePredicate(nameof(Character.Score), ValueComparingOperator.LessThanOrEqual, filter.ScoreMax) })); }
public async Task <ActionResult> List(int page = 1) { var filter = new CharacterFilterDto { SortCriteria = nameof(CharacterDto.Score), PageSize = PageSize, RequestedPageNumber = page }; var result = await CharacterFacade.GetCharactersByFilterAsync(filter); // Paging ViewBag.RequestedPageNumber = result.RequestedPageNumber; ViewBag.PageCount = (int)Math.Ceiling((double)result.TotalItemsCount / (double)PageSize); // Paging END return(View("List", result.Items)); }
public async Task GetByNullableBoolTest() { var filterDto = new CharacterFilterDto { IsDeleted = true }; var pagedRequest = new PagedFilterRequest <CharacterFilterDto> { FilterDto = filterDto }; var result = _context.Characters.Filter(pagedRequest); var items = await result.ToListAsync(); Assert.IsNotNull(items.FirstOrDefault(x => x.Name == "I am deleted")); }
public async Task FilterContainsTest() { var filterDto = new CharacterFilterDto { Name = "alex" }; var pagedRequest = new PagedFilterRequest <CharacterFilterDto> { FilterDto = filterDto }; var result = _context.Characters.Filter(pagedRequest); var items = await result.ToListAsync(); var hasAlex = items.Any(x => x.Name == "Alex"); Assert.IsTrue(hasAlex); }
public async Task GetByForeignKey() { var filterDto = new CharacterFilterDto { UniverseId = 1 }; var pagedRequest = new PagedFilterRequest <CharacterFilterDto> { FilterDto = filterDto }; var result = _context.Characters.Filter(pagedRequest); var items = await result.ToListAsync(); var hasMiddleEarthCharacters = items.Count == 2; Assert.IsTrue(hasMiddleEarthCharacters); }
public async Task GetByEnumTest() { var filterDto = new CharacterFilterDto { Type = CharacterType.Mage }; var pagedRequest = new PagedFilterRequest <CharacterFilterDto> { FilterDto = filterDto }; var result = _context.Characters.Filter(pagedRequest); var items = await result.ToListAsync(); var gendalf = items.FirstOrDefault(x => x.Name == "Gendalf"); Assert.IsNotNull(gendalf); }
public async Task FilterDatetimeTest() { var filterDto = new CharacterFilterDto { CreateDate = new DateTime(2010, 10, 5) }; var pagedRequest = new PagedFilterRequest <CharacterFilterDto> { FilterDto = filterDto }; var result = _context.Characters.Filter(pagedRequest); var items = await result.ToListAsync(); var alex = items.FirstOrDefault(x => x.Name == "Alex"); Assert.IsNotNull(alex); }
public async Task FilterDateTimeIntervalTest() { var filterDto = new CharacterFilterDto { CreateDateFrom = new DateTime(2008, 10, 15), CreateDateTo = DateTime.Now.AddYears(-2) }; var pagedRequest = new PagedFilterRequest <CharacterFilterDto> { FilterDto = filterDto }; var result = _context.Characters.Filter(pagedRequest); var items = await result.ToListAsync(); var hasDianaAlex = items.Any(x => x.Name == "Alex" || x.Name == "Diana"); Assert.IsTrue(hasDianaAlex); }
public async Task SortTest() { var filterDto = new CharacterFilterDto { }; var pagedRequest = new PagedFilterRequest <CharacterFilterDto> { FilterDto = filterDto, Sortings = new Sorting[] { new Sorting { Name = "Name", Direction = Filtr.Enums.SortingDirection.Desc, } } }; var result = _context.Characters.Filter(pagedRequest); var items = await result.ToListAsync(); }
/// <summary> /// Gets all customers according to page /// </summary> /// <returns>all customers</returns> public async Task <QueryResultDto <CharacterDto, CharacterFilterDto> > GetCharactersByFilterAsync(CharacterFilterDto filter) { using (UnitOfWorkProvider.Create()) { return(await _characterService.ListCharactersAsync(filter)); } }
protected override IQuery <Character> ApplyWhereClause(IQuery <Character> query, CharacterFilterDto filter) { var predicates = new List <IPredicate>(); AddIfDefined(FilterCharacterName(filter), predicates); AddIfDefined(FilterGroup(filter), predicates); AddIfDefined(FilterScore(filter), predicates); if (predicates.Count == 0) { return(query); } if (predicates.Count == 1) { return(query.Where(predicates.First())); } var wherePredicate = new CompositePredicate(predicates); return(query.Where(wherePredicate)); }