Пример #1
0
        public CSTAConfirmationEvent Parse(IStructReader reader)
        {
            Logger logger = LogManager.GetLogger("TSAPIClient");

            try
            {
                object result;

                logger.Info("CSTAQueryAgentStateConfParser.Parse: eventType=CSTA_QUERY_AGENT_STATE_CONF");
                logger.Info("CSTAQueryAgentStateConfParser.Parse: try to read the CSTAQueryAgentStateConfEvent_t confirmation event...");

                if (reader.TryReadStruct(typeof(CSTAQueryAgentStateConfEvent_t), out result))
                {
                    logger.Info("CSTAQueryAgentStateConfParser.Parse: successfully read the CSTAQueryAgentStateConfEvent_t confirmation event!");

                    CSTAQueryAgentStateConfEvent_t queryAgentState = (CSTAQueryAgentStateConfEvent_t)result;

                    CSTAConfirmationEvent cstaConfirmation = new CSTAConfirmationEvent
                    {
                        u = { queryAgentState = queryAgentState }
                    };

                    return(cstaConfirmation);
                }

                return(null);
            }
            catch (Exception err)
            {
                logger.Error(string.Format("Error in CSTAQueryAgentStateConfParser.Parse: {0}", err));
            }

            return(null);
        }
Пример #2
0
        public void Invoke(CSTAQueryAgentStateConfEvent_t csta, ATTQueryAgentStateConfEvent_t att)
        {
            if (_start)
            {
                _mode = att;
                _sate = csta.agentState;
                if (csta.agentState == AgentState_t.agNull)
                {
                    LogoutInvoke();
                }
                else
                {
                    LoginInvoke();
                    switch (_mode.workMode)
                    {
                    case ATTWorkMode_t.wmManualIn: ReadyInvoke(); break;

                    case ATTWorkMode_t.wmAuxWork: NotReadyInvoke(); break;

                    case ATTWorkMode_t.wmAftcalWk: AftCallInvoke(); break;
                    }
                }
                _start = false;
            }
            else
            {
                if (_sate != csta.agentState || _mode.workMode != att.workMode || _mode.reasonCode != att.reasonCode || _mode.talkState != att.talkState)
                {
                    if (csta.agentState == AgentState_t.agNull && _sate != AgentState_t.agNull)
                    {
                        LogoutInvoke();
                    }
                    if (csta.agentState != AgentState_t.agNull && _sate == AgentState_t.agNull)
                    {
                        LoginInvoke();
                    }
                    _mode = att;
                    _sate = csta.agentState;
                    switch (_mode.workMode)
                    {
                    case ATTWorkMode_t.wmAutoIn:
                    case ATTWorkMode_t.wmManualIn: ReadyInvoke(); break;

                    case ATTWorkMode_t.wmAuxWork: NotReadyInvoke(); break;

                    case ATTWorkMode_t.wmAftcalWk: AftCallInvoke(); break;
                    }
                }
            }

            _timer.Change((long)Timeouts.Login, (long)Timeouts.Login);
        }
Пример #3
0
 public QueryAgentStateEventReturn(CstaConfirmationEvent a1, ATTEvent_t a2)
 {
     Csta = a1.queryAgentState;
     Att  = a2.queryAgentState;
 }