Exemple #1
0
 public void SendStatusChangeRequestBreak(string breakReason)
 {
     try
     {
         IsBreakRequest = ardsHandler.BreakRequest(breakReason);
         if (!IsBreakRequest)
         {
             return;
         }
         if (AgentCurrentState.GetType() != typeof(AgentIdle))
         {
             return;
         }
         IsBreakRequest    = false;
         AgentCurrentState = new AgentBreak();
     }
     catch (Exception exception)
     {
         Logger.Instance.LogMessage(Logger.LogAppender.DuoLogger2, "SendStatusChangeRequestBreak", exception, Logger.LogLevel.Error);
     }
 }
Exemple #2
0
        private void InitializeArdsEvent()
        {
            try
            {
                ardsHandler.OnStatusUpdatedMessage += (s) =>
                {
                    try
                    {
                    }
                    catch (Exception exception)
                    {
                        Logger.Instance.LogMessage(Logger.LogAppender.DuoLogger2, "OnStatusUpdatedMessage", exception, Logger.LogLevel.Error);
                    }
                };



                #region Breake

                ardsHandler.OnSendResourceChangeBreakCompleted += (s) =>
                {
                    try
                    {
                        AgentCurrentState = new AgentBreak();
                    }
                    catch (Exception exception)
                    {
                        Logger.Instance.LogMessage(Logger.LogAppender.DuoLogger2, "OnSendResourceChangeBreakCompleted", exception, Logger.LogLevel.Error);
                    }
                };


                ardsHandler.OnSendStatusChangeRequestBreakCompleted += (s) =>
                {
                    try
                    {
                        if (s.Command == WorkflowResultCode.ACDS301 || s.Command == WorkflowResultCode.ACDS4032)
                        {
                            AgentCurrentState = new AgentBreak();
                            ardsHandler.ResourceStatusChangeBreak(Auth, CallSessionId);
                        }
                        UiState.ShowNotifications(s);
                    }
                    catch (Exception exception)
                    {
                        Logger.Instance.LogMessage(Logger.LogAppender.DuoLogger2, "OnSendStatusChangeRequestBreakCompleted", exception, Logger.LogLevel.Error);
                    }
                };

                ardsHandler.OnCancelBreakRequestCompleted += (s) =>
                {
                    try
                    {
                        UiState.CancelBreakRequest(s);
                    }
                    catch (Exception exception)
                    {
                        Logger.Instance.LogMessage(Logger.LogAppender.DuoLogger2, "OnCancelBreakRequestCompleted", exception, Logger.LogLevel.Error);
                    }
                };

                #endregion Breake

                #region Reregistor

                ardsHandler.OnResourceRegistrationCompleted += (s) =>
                {
                    Logger.Instance.LogMessage(Logger.LogAppender.DuoLogger2, "OnResourceRegistrationCompleted", Logger.LogLevel.Debug);
                };

                #endregion Reregistor



                #region StatusChangeRequestIdel

                ardsHandler.OnSendStatusChangeRequestIdelCompleted += (s) =>
                {
                    try
                    {
                        switch (s.Command)
                        {
                        case WorkflowResultCode.ACDS4033:
                        {
                            ardsHandler.ResourceModeChange(Auth, CallSessionId);
                        }
                        break;

                        case WorkflowResultCode.ACDS403:
                        {
                            UiState.InAgentIdleState(_agentPvState);
                        }
                        break;

                        case WorkflowResultCode.ACDS301:
                        case WorkflowResultCode.ACDS4032:
                        {
                            AgentCurrentState = new AgentBreak();
                            ardsHandler.ResourceStatusChangeBreak(Auth, CallSessionId);
                        }
                        break;
                        }
                    }
                    catch (Exception exception)
                    {
                        Logger.Instance.LogMessage(Logger.LogAppender.DuoLogger2, "OnSendStatusChangeRequestIdelCompleted", exception, Logger.LogLevel.Error);
                    }
                };

                #endregion StatusChangeRequestIdel

                #region Mode

                ardsHandler.OnSendModeChangeRequestOutboundCompleted += (s) =>
                {
                    if (s.Command == WorkflowResultCode.ACDS501)
                    {
                        ardsHandler.ResourceModeChange(Auth, CallSessionId);
                    }
                    else
                    {
                        UiState.OnSendModeChangeRequestOutbound(s);
                    }
                };

                ardsHandler.OnSendModeChangeRequestInboundCompleted += (s) =>
                {
                    if (s.Command == WorkflowResultCode.ACDS501)
                    {
                        ardsHandler.ResourceModeChange(Auth, CallSessionId);
                    }
                    else
                    {
                        UiState.OnSendModeChangeRequestInbound(s);
                    }
                };

                ardsHandler.OnResourceModeChanged += (r) =>
                {
                    try
                    {
                        AgentMode = AgentReqMode;
                    }
                    catch (Exception exception)
                    {
                        Logger.Instance.LogMessage(Logger.LogAppender.DuoLogger2, "OnResourceModeChanged", exception, Logger.LogLevel.Error);
                    }
                };
                #endregion
            }
            catch (Exception exception)
            {
                Logger.Instance.LogMessage(Logger.LogAppender.DuoLogger2, "InitializeArdsEvent", exception, Logger.LogLevel.Error);
            }
        }