public async Task <SwitchCollection> List(SwitchQuery query) { var dbQuery = await query.Create(this.Entities); var total = await dbQuery.CountAsync(); dbQuery = dbQuery.Skip(query.SkipTo(total)).Take(query.Limit); //This is not as good as it could be IEnumerable <Switch> results; if (query.GetStatus) { var currentStatusResults = new List <Switch>(); foreach (var result in dbQuery) { var currentStatus = await switchRepo.Get(result.Subsystem, result.Bridge, result.Id); var item = mapper.Map <Switch>(result); item.Value = currentStatus.Value; currentStatusResults.Add(item); } results = currentStatusResults; } else { var resultQuery = dbQuery.Select(i => mapper.Map <Switch>(i)); results = await resultQuery.ToListAsync(); } return(new SwitchCollection(query, total, results)); }
public async Task <SwitchCollection> List([FromQuery] SwitchQuery query) { return(await repo.List(query)); }