private IQueryable <Table> GetTablesIQueryable(TableFilterDto filter) { IQueryable <Table> tables = _db.Tables.Include(x => x.Standing); if (filter?.LeagueTitle?.Length > 0) { tables = tables.Where(x => filter.LeagueTitle.Select(s => s.ToLowerInvariant()).Contains(x.LeagueTitle.ToLowerInvariant())); } if (filter?.Group?.Length > 0) { tables = tables.Where(x => filter.Group.Select(s => s.ToLowerInvariant()).Contains(x.Group.ToLowerInvariant())); } return(tables); }
public async Task TestGetTables_WithEmptyFilter() { _applicationContext.Database.EnsureDeleted(); _applicationContext.Matches.AddRange(this.matches); _applicationContext.Tables.AddRange(this.tables); _applicationContext.SaveChanges(); MapperInitialize.Configure(); var filter = new TableFilterDto(); var tables = await _tableService.GetTables(filter); Assert.AreEqual(2, tables.Count); Assert.AreEqual(2, tables[0].Standing.Count); }
public async Task <List <TableDto> > GetTables(TableFilterDto filter = null) { var tableDtos = Mapper.Map <List <TableDto> >(GetTablesIQueryable(filter)); return(await CalculateRank(tableDtos)); }
public async Task <IActionResult> GetTables(TableFilterDto filter) { var result = await _tableService.GetTables(filter); return(result != null ? (IActionResult)Ok(result) : BadRequest()); }