public void HandleEvent(Event e)
        {
            switch (state)
            {
            case State.LOCKED:
                switch (e)
                {
                case Event.COIN:
                    state = State.UNLOCKED;
                    turnstileController.Unlock();
                    break;

                case Event.PASS:
                    turnstileController.Alarm();
                    break;
                }
                break;

            case State.UNLOCKED:
                switch (e)
                {
                case Event.COIN:
                    turnstileController.Thankyou();
                    break;

                case Event.PASS:
                    state = State.LOCKED;
                    turnstileController.Lock();
                    break;
                }
                break;
            }
        }
 internal void Alarm()
 {
     turnstileController.Alarm();
 }
 public override void Alarm()
 {
     controller.Alarm();
 }