public RegistrationProcess() { CurrentState = MyRegistrationState.BeforeTR87; transitions = new Dictionary <StateTransition, MyRegistrationState> { { new StateTransition(MyRegistrationState.BeforeTR87, RegisterCommands.StartAll), MyRegistrationState.ConnectingTR87 }, { new StateTransition(MyRegistrationState.BeforeTR87, RegisterCommands.StartAeonix), MyRegistrationState.ConnectingAeonix }, { new StateTransition(MyRegistrationState.BeforeTR87, RegisterCommands.ReRegister), MyRegistrationState.ReConnectingAeonix }, { new StateTransition(MyRegistrationState.BeforeTR87, RegisterCommands.Continue), MyRegistrationState.ConnectingTR87 }, { new StateTransition(MyRegistrationState.ConnectingTR87, RegisterCommands.Continue), MyRegistrationState.GetingInfo }, { new StateTransition(MyRegistrationState.GetingInfo, RegisterCommands.Continue), MyRegistrationState.DisconnectingTR87 }, { new StateTransition(MyRegistrationState.DisconnectingTR87, RegisterCommands.Continue), MyRegistrationState.ConnectingAeonix }, { new StateTransition(MyRegistrationState.ConnectingAeonix, RegisterCommands.Continue), MyRegistrationState.InviteAeonix }, { new StateTransition(MyRegistrationState.ReConnectingAeonix, RegisterCommands.Continue), MyRegistrationState.AfterAeonix }, { new StateTransition(MyRegistrationState.InviteAeonix, RegisterCommands.Continue), MyRegistrationState.AfterAeonix }, { new StateTransition(MyRegistrationState.AfterAeonix, RegisterCommands.Continue), MyRegistrationState.AfterAeonix }, { new StateTransition(MyRegistrationState.BeforeTR87, RegisterCommands.Clear), MyRegistrationState.BeforeTR87 }, { new StateTransition(MyRegistrationState.ConnectingTR87, RegisterCommands.Clear), MyRegistrationState.BeforeTR87 }, { new StateTransition(MyRegistrationState.GetingInfo, RegisterCommands.Clear), MyRegistrationState.BeforeTR87 }, { new StateTransition(MyRegistrationState.DisconnectingTR87, RegisterCommands.Clear), MyRegistrationState.BeforeTR87 }, { new StateTransition(MyRegistrationState.ConnectingAeonix, RegisterCommands.Clear), MyRegistrationState.BeforeTR87 }, { new StateTransition(MyRegistrationState.ReConnectingAeonix, RegisterCommands.Clear), MyRegistrationState.BeforeTR87 }, { new StateTransition(MyRegistrationState.InviteAeonix, RegisterCommands.Clear), MyRegistrationState.BeforeTR87 }, { new StateTransition(MyRegistrationState.AfterAeonix, RegisterCommands.Clear), MyRegistrationState.BeforeTR87 }, { new StateTransition(MyRegistrationState.BeforeTR87, RegisterCommands.End), MyRegistrationState.AfterAeonix }, { new StateTransition(MyRegistrationState.ConnectingTR87, RegisterCommands.End), MyRegistrationState.AfterAeonix }, { new StateTransition(MyRegistrationState.GetingInfo, RegisterCommands.End), MyRegistrationState.AfterAeonix }, { new StateTransition(MyRegistrationState.DisconnectingTR87, RegisterCommands.End), MyRegistrationState.AfterAeonix }, { new StateTransition(MyRegistrationState.ConnectingAeonix, RegisterCommands.End), MyRegistrationState.AfterAeonix }, { new StateTransition(MyRegistrationState.ReConnectingAeonix, RegisterCommands.End), MyRegistrationState.AfterAeonix }, { new StateTransition(MyRegistrationState.InviteAeonix, RegisterCommands.End), MyRegistrationState.AfterAeonix }, { new StateTransition(MyRegistrationState.AfterAeonix, RegisterCommands.End), MyRegistrationState.AfterAeonix } }; }
public void MoveNext(RegisterCommands command) { MyRegistrationState previewState = CurrentState; CurrentState = GetNext(command); if (this.MyRegistrationListener != null && previewState != CurrentState) { MyRegistrationListener.onMyRegistrationStateChanged(CurrentState); } }
public void onMyRegistrationStateChanged(MyRegistrationState state) { switch (state) { case MyRegistrationState.BeforeTR87: //make sure disconnection Console.WriteLine("omer40: " + "BeforeTR87"); break; case MyRegistrationState.ConnectingTR87: Console.WriteLine("omer40: " + "ConnectingTR87"); this.loginTR87(); break; case MyRegistrationState.GetingInfo: Console.WriteLine("omer40: " + "GetingInfo"); registrationProcess.MoveNext(RegisterCommands.End); // fireLoginSuccsess(); // test("GetingInfo"); break; case MyRegistrationState.DisconnectingTR87: Console.WriteLine("omer40: " + "DisconnectingTR87"); test("DisconnectingTR87"); break; case MyRegistrationState.ConnectingAeonix: Console.WriteLine("omer40: " + "ConnectingAeonix"); this.loginAeonix(); break; case MyRegistrationState.ReConnectingAeonix: Console.WriteLine("omer40: " + "ReConnectingAeonix"); this.loginAeonix(); break; case MyRegistrationState.InviteAeonix: Console.WriteLine("omer40: " + "InviteAeonix"); CallService.Instance.makeTr87Call(); //onTr87Established(); break; case MyRegistrationState.AfterAeonix: Console.WriteLine("omer40: " + "AfterAeonix"); fireLoginSuccsess(); //do nothing break; } }
public StateTransition(MyRegistrationState currentState, RegisterCommands command) { CurrentState = currentState; Command = command; }