public async static Task ProcessSumpPumpDataPoint([EventHubTrigger("iothub-ehub-sumppump-i-31562-57e63b098f")] DataPointPayload payload) { var newDataPoint = new DataPointEntity() { PartitionKey = payload.DeviceId, RowKey = payload.Timestamp.ToRowKey(), WaterLevel = payload.WaterLevel, PumpRunning = payload.PumpRunning }; DataPointRepository.Insert(newDataPoint); /* * // Get Current Duty Cycle we're in the middle of * var currentDutyCycle = await GetCurrentDutyCycle(payload); * * // Sump Pump turned on or off - start a new Duty Cycle * if (currentDutyCycle.IsEmptying != payload.PumpRunning) * currentDutyCycle = CreateDutyCycle(payload); * * // Update the end time with the current statistics * currentDutyCycle.EndLevel = payload.WaterLevel; * currentDutyCycle.EndTime = payload.Timestamp; * DutyCycleRepository.Upsert(currentDutyCycle); */ }
public async Task <SumpPump> Pumps(string pumpId) { DeviceTwinEntity <SumpPumpSettingEntity> entity = await TwinRepository.ById(pumpId); var topDataPointQuery = await DataPointRepository.Top(pumpId, 1); DataPointEntity currentData = topDataPointQuery.FirstOrDefault(); var partialPump = Mapper.Map <DeviceTwinEntity <SumpPumpSettingEntity>, SumpPump>(entity); partialPump.LastPoint = Mapper.Map <DataPointEntity, DataPoint>(currentData); return(partialPump); }
public async Task <IEnumerable <SumpPump> > Pumps() { IEnumerable <DeviceTwinEntity <SumpPumpSettingEntity> > entities = await TwinRepository.All(); var pumpList = Mapper.Map <IEnumerable <DeviceTwinEntity <SumpPumpSettingEntity> >, IEnumerable <SumpPump> >(entities); foreach (var pump in pumpList) { var topDataPointQuery = await DataPointRepository.Top(pump.PumpId, 1); DataPointEntity currentData = topDataPointQuery.FirstOrDefault(); pump.LastPoint = Mapper.Map <DataPointEntity, DataPoint>(currentData); } return(pumpList); }