Esempio n. 1
0
        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));
        }
Esempio n. 2
0
 public async Task <SwitchCollection> List([FromQuery] SwitchQuery query)
 {
     return(await repo.List(query));
 }