private static void DoLogicBasedOnWaterLevels(IGuadtimGardenData dataPackage) { if (!dataPackage.ReservoirIsEmpty) { if (dataPackage.GrowPodIsEmpty) { _httpDataDeliverer.SendPumpData(new GuadtimGardenData().PumpOn()); while (!dataPackage.ReservoirIsEmpty && !dataPackage.GrowPodIsFull) { _relays.RunPump(1500); //Send some message about pumping for a second? var waterLevelData = _waterLevelSensorController.GetWaterLevelStatus(); dataPackage.UpdateWaterLevelData(waterLevelData); } _httpDataDeliverer.SendPumpData(new GuadtimGardenData().PumpOff()); _httpDataDeliverer.SendWaterlevelsData(new GuadtimGardenData().SetWaterLevelData(dataPackage)); } } else { //Send some message about the reservoir being empty _httpDataDeliverer.SendWaterlevelsData(new GuadtimGardenData().SetWaterLevelData(dataPackage)); } }