예제 #1
0
	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
 }
예제 #2
0
 public void DrainTankEventHandler(WaterLevelEventArgs e)
 {
     Console.Write("DrainTankEventHandler: ");
     Console.WriteLine("The water tank contains " + e.WaterLevel + " gallons!");
     _itsTank.ChangeWaterLevel(-_pumpingCapacity);
 }
예제 #3
0
 public void FillTankEventHandler(WaterLevelEventArgs e)
 {
     Console.Write("FillTankEventHandler: ");
     Console.WriteLine("The water tank contains " + e.WaterLevel + " gallons!");
 }
예제 #4
0
 public void EmptyTankEventHandler(WaterLevelEventArgs e)
 {
     Console.Write("EmptyTankEventHandler: ");
     Console.WriteLine("Water tank has been drained! The water tank contains " + e.WaterLevel + " gallons!");
 }
예제 #5
0
 public void FullTankEventHandler(WaterLevelEventArgs e)
 {
     Console.WriteLine("FullTankEventHandler: Draining the water tank!");
     _itsTank.ChangeWaterLevel(-_pumpingCapacity);
 }
예제 #6
0
	public void OnDrain(WaterLevelEventArgs e){
	  if(Drain != null){
		  Drain(e);
	  }
	}
예제 #7
0
	public void OnFill(WaterLevelEventArgs e){
	  if(Fill != null){
		  Fill(e);
		}
	}
예제 #8
0
	public void OnEmpty(WaterLevelEventArgs e){ 
		if(Empty != null){
		  Empty(e);
		}
	}