Ejemplo n.º 1
0
        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);
        }