Beispiel #1
0
 public void Transported(Person person)
 {
     PersonsList.Remove(person);
     CurrentWeight -= person.Weight;
     NumTransported++;
     TotalWeight    += person.Weight;
     CarryFloor     -= person.UpdateStatusFromElevator;
     AddFloor       -= person.AddFloor;
     EventOpenDoors -= person.GetOffTheElevator;
     UpdateTransported?.Invoke(CurrentWeight);
 }
Beispiel #2
0
 public void CloseDoors()
 {
     Status = "Close doors";
     UpdateStatus?.Invoke(Status);
     Thread.Sleep(2500);
     UpdateTransported?.Invoke(CurrentWeight);
     if (ElevatorList.Count == 0 && CurrentWeight == 0)
     {
         Wait();
     }
     else if (CurrentWeight == 0)
     {
         GoEmtyToCall();
     }
     else if (ElevatorList[0] > CurrentFloor)
     {
         CarryUp();
     }
     else if (ElevatorList[0] < CurrentFloor)
     {
         CarryDown();
     }
 }
Beispiel #3
0
 private void CheckMode()
 {
     DataBase.IsClosed = false;
     StandTime         = new Time(0, 2, 0, 0);
     Status            = "Check mode";
     UpdateStatus?.Invoke(Status);
     if (!DataBase.Overload)
     {
         EventOpenDoors?.Invoke(CurrentFloor);
     }
     UpdateTransported?.Invoke(CurrentWeight);
     if (DataBase.IsClosed && CurrentWeight >= MaxWeight)
     {
         DataBase.IsClosed = false;
         Signal();
     }
     else if (!DataBase.IsClosed)
     {
         DataBase.Overload = false;
         Thread.Sleep(StandTime.Sec * 1000);
     }
     CloseDoors();
 }