コード例 #1
0
 public static CallAttachedDataChanged GetInstance()
 {
     if (userEventObject == null)
     {
         userEventObject = new CallAttachedDataChanged();
     }
     return(userEventObject);
 }
コード例 #2
0
        public void UpdateOnDispositionCodeChange(IMessage message, string callDuration)
        {
            try
            {
                this._logger.Info("UpdateOnDispositionCodeChange: Event Name " + message.ToString());
                switch (message.Id)
                {
                case EventAttachedDataChanged.MessageId:
                    EventAttachedDataChanged attachedDataChanged = (EventAttachedDataChanged)message;

                    if (Settings.SFDCOptions.CanUseGenesysCallDuration && callDuration != null)
                    {
                        _callDuration = callDuration;
                    }
                    else if (_callDurationData.ContainsKey(attachedDataChanged.ConnID.ToString()))
                    {
                        TimeSpan ts = System.DateTime.Now.Subtract(_callDurationData[attachedDataChanged.ConnID.ToString()]);
                        _callDuration = ts.Hours + " Hr " + ts.Minutes + " Mins " + ts.Seconds + " Secs";
                    }
                    else
                    {
                        this._logger.Info("UpdateOnDispositionCodeChange: Call Duration data is not found in Collection");
                        _callDuration = "0 Hr 0 Mins 0 Secs";
                    }
                    if (attachedDataChanged.CallType == CallType.Inbound)
                    {
                        if (this._consultConnId == attachedDataChanged.ConnID.ToString())
                        {
                            CallAttachedDataChanged.GetInstance().UpdateRecords(attachedDataChanged, SFDCCallType.ConsultVoiceReceived, _callDuration);
                        }
                        else
                        {
                            CallAttachedDataChanged.GetInstance().UpdateRecords(attachedDataChanged, SFDCCallType.InboundVoice, _callDuration);
                        }
                    }
                    else if ((attachedDataChanged.CallType == CallType.Outbound) || (attachedDataChanged.CallType == CallType.Unknown))
                    {
                        if (this._consultConnId == attachedDataChanged.ConnID.ToString())
                        {
                            CallAttachedDataChanged.GetInstance().UpdateRecords(attachedDataChanged, SFDCCallType.ConsultVoiceReceived, _callDuration);
                        }
                        else
                        {
                            CallAttachedDataChanged.GetInstance().UpdateRecords(attachedDataChanged, SFDCCallType.OutboundVoiceSuccess, _callDuration);
                        }
                    }
                    else if (attachedDataChanged.CallType == CallType.Consult)
                    {
                        CallAttachedDataChanged.GetInstance().UpdateRecords(attachedDataChanged, SFDCCallType.ConsultVoiceReceived, _callDuration);
                    }

                    break;

                    #region EventReleased

                case EventReleased.MessageId:
                    EventReleased released = (EventReleased)message;

                    if (Settings.SFDCOptions.CanUseGenesysCallDuration && callDuration != null)
                    {
                        _callDuration = callDuration;
                    }
                    else if (FinishedCallDuration.ContainsKey(released.ConnID.ToString()))
                    {
                        _callDuration = FinishedCallDuration[released.ConnID.ToString()];
                    }
                    else if (_callDurationData.ContainsKey(released.ConnID.ToString()))
                    {
                        TimeSpan ts = System.DateTime.Now.Subtract(_callDurationData[released.ConnID.ToString()]);
                        _callDuration = ts.Hours + " Hr " + ts.Minutes + " Mins " + ts.Seconds + " Secs";
                        this._logger.Error("UpdateOnDispositionCodeChange: call duration not found in FinishedCallDuration collection for the connId :" + released.ConnID.ToString());

                        if (!FinishedCallDuration.ContainsKey(released.ConnID.ToString()))
                        {
                            FinishedCallDuration.Add(released.ConnID.ToString(), _callDuration);
                        }
                    }
                    else
                    {
                        this._logger.Error("UpdateOnDispositionCodeChange: call duration not found in both call data collection for the connId :" + released.ConnID.ToString());
                        _callDuration = "0 Hr 0 Mins 0 Secs";
                    }

                    if (released.CallType == CallType.Inbound)
                    {
                        if (this._consultConnId == released.ConnID.ToString())
                        {
                            CallReleased.GetInstance().UpdateRecords(released, SFDCCallType.ConsultVoiceReceived, _callDuration);
                        }
                        else
                        {
                            CallReleased.GetInstance().UpdateRecords(released, SFDCCallType.InboundVoice, _callDuration);
                        }
                    }
                    else if ((released.CallType == CallType.Outbound) || (released.CallType == CallType.Unknown))
                    {
                        if (this._consultConnId == released.ConnID.ToString())
                        {
                            CallReleased.GetInstance().UpdateRecords(released, SFDCCallType.ConsultVoiceReceived, _callDuration);
                        }
                        else
                        {
                            CallReleased.GetInstance().UpdateRecords(released, SFDCCallType.OutboundVoiceSuccess, _callDuration);
                        }
                    }
                    else if (released.CallType == CallType.Consult)
                    {
                        CallReleased.GetInstance().UpdateRecords(released, SFDCCallType.ConsultVoiceReceived, _callDuration);
                    }

                    break;

                    #endregion EventReleased

                default:
                    break;
                }
            }
            catch (Exception generalException)
            {
                this._logger.Error("UpdateOnDispositionCodeChange: Error Occurred : " + generalException.ToString());
            }
        }
コード例 #3
0
        public void UpdateActivityForReleasedEvent(IMessage message)
        {
            try
            {
                this.logger.Info("UpdateActivityForReleasedEvent : Event Name " + message.ToString());
                switch (message.Id)
                {
                case EventAttachedDataChanged.MessageId:
                    EventAttachedDataChanged attachedDataChanged = (EventAttachedDataChanged)message;

                    if (CallDurationData.ContainsKey(attachedDataChanged.ConnID.ToString()))
                    {
                        TimeSpan ts = System.DateTime.Now.Subtract(CallDurationData[attachedDataChanged.ConnID.ToString()]);
                        callDuration = ts.Hours + "Hr " + ts.Minutes + " mins " + ts.Seconds + "secs";
                    }
                    if (attachedDataChanged.CallType == CallType.Inbound)
                    {
                        if (this.consultConnId == attachedDataChanged.ConnID.ToString())
                        {
                            CallAttachedDataChanged.GetInstance().UpdateRecords(attachedDataChanged, SFDCCallType.ConsultReceived, callDuration);
                        }
                        else
                        {
                            CallAttachedDataChanged.GetInstance().UpdateRecords(attachedDataChanged, SFDCCallType.Inbound, callDuration);
                        }
                    }
                    else if ((attachedDataChanged.CallType == CallType.Outbound) || (attachedDataChanged.CallType == CallType.Unknown))
                    {
                        CallAttachedDataChanged.GetInstance().UpdateRecords(attachedDataChanged, SFDCCallType.OutboundSuccess, callDuration);
                    }
                    else if (attachedDataChanged.CallType == CallType.Consult)
                    {
                        CallAttachedDataChanged.GetInstance().UpdateRecords(attachedDataChanged, SFDCCallType.ConsultSuccess, callDuration);
                    }

                    break;

                    #region EventReleased
                case EventReleased.MessageId:
                    EventReleased released = (EventReleased)message;

                    if (FinishedCallDuration.ContainsKey(released.ConnID.ToString()))
                    {
                        callDuration = FinishedCallDuration[released.ConnID.ToString()];
                    }
                    else
                    {
                        callDuration = string.Empty;
                    }

                    if (released.CallType == CallType.Inbound)
                    {
                        if (this.consultConnId == released.ConnID.ToString())
                        {
                            CallReleased.GetInstance().UpdateRecords(released, SFDCCallType.ConsultReceived, callDuration);
                        }
                        else
                        {
                            CallReleased.GetInstance().UpdateRecords(released, SFDCCallType.Inbound, callDuration);
                        }
                    }
                    else if ((released.CallType == CallType.Outbound) || (released.CallType == CallType.Unknown))
                    {
                        CallReleased.GetInstance().UpdateRecords(released, SFDCCallType.OutboundSuccess, callDuration);
                    }
                    else if (released.CallType == CallType.Consult)
                    {
                        CallReleased.GetInstance().UpdateRecords(released, SFDCCallType.ConsultSuccess, callDuration);
                    }

                    break;
                    #endregion

                default:
                    break;
                }
            }
            catch (Exception generalException)
            {
                this.logger.Error("UpdateActivityForReleasedEvent : Error Occurred : " + generalException.ToString());
            }
        }