public void WaterLevelChange(int amount){ int lastLevel = CurrentLevel; CurrentLevel += amount; _rising = (CurrentLevel >= lastLevel); switch(_mode){ case Mode.HighLevelIndicator : if(_rising){ if(CurrentLevel >= SetPoint){ WaterLevelEventArgs args = new WaterLevelEventArgs(CurrentLevel); OnFull(args); }else{ WaterLevelEventArgs args = new WaterLevelEventArgs(CurrentLevel); OnFill(args); } } break; case Mode.LowLevelIndicator : if(!_rising){ if(CurrentLevel <= SetPoint){ WaterLevelEventArgs args = new WaterLevelEventArgs(CurrentLevel); OnEmpty(args); }else{ WaterLevelEventArgs args = new WaterLevelEventArgs(CurrentLevel); OnDrain(args); } } break; } // end switch }
public void DrainTankEventHandler(WaterLevelEventArgs e) { Console.Write("DrainTankEventHandler: "); Console.WriteLine("The water tank contains " + e.WaterLevel + " gallons!"); _itsTank.ChangeWaterLevel(-_pumpingCapacity); }
public void FillTankEventHandler(WaterLevelEventArgs e) { Console.Write("FillTankEventHandler: "); Console.WriteLine("The water tank contains " + e.WaterLevel + " gallons!"); }
public void EmptyTankEventHandler(WaterLevelEventArgs e) { Console.Write("EmptyTankEventHandler: "); Console.WriteLine("Water tank has been drained! The water tank contains " + e.WaterLevel + " gallons!"); }
public void FullTankEventHandler(WaterLevelEventArgs e) { Console.WriteLine("FullTankEventHandler: Draining the water tank!"); _itsTank.ChangeWaterLevel(-_pumpingCapacity); }
public void OnDrain(WaterLevelEventArgs e){ if(Drain != null){ Drain(e); } }
public void OnFill(WaterLevelEventArgs e){ if(Fill != null){ Fill(e); } }
public void OnEmpty(WaterLevelEventArgs e){ if(Empty != null){ Empty(e); } }