コード例 #1
0
        public async Task <ThermostatCollection> List(ThermostatQuery query)
        {
            var dbQuery = await query.Create(this.Entities);

            var total = await dbQuery.CountAsync();

            dbQuery = dbQuery.Skip(query.SkipTo(total)).Take(query.Limit);
            var resultQuery = dbQuery.Select(i => mapper.Map <Thermostat>(i));
            var results     = await resultQuery.ToListAsync();

            return(new ThermostatCollection(query, total, results));
        }
コード例 #2
0
        public async Task <ThermostatCollection> List([FromQuery] ThermostatQuery query, [FromServices] IThermostatSubsystemManager <ThermostatInput, Thermostat> thermostats)
        {
            var result = await repo.List(query);

            if (query.UpdateStatus && query.ThermostatId != null)
            {
                //Allow status update for 1 item
                var cached = result.Items.FirstOrDefault();
                if (cached != null)
                {
                    var live = await thermostats.Get(cached.Subsystem, cached.Bridge, cached.Id);

                    var item = await repo.Update(cached.ThermostatId, live);

                    return(new ThermostatCollection(query, 1, new Thermostat[] { item }));
                }
            }

            return(result);
        }