public bool Add(CallbackRecord record) { Trace.TraceInformation("Enter."); lock (objLock) { if (record != null) { Trace.TraceInformation("Record list size (before):" + _Records.Count.ToString()); _Records.Add(record); Trace.TraceInformation("Record with ID = " + record.ID + " was added to the list."); Trace.TraceInformation("Record list size (after):" + _Records.Count.ToString()); iRecordCount = _Records.Count; UpdateNumberOfRecordsCurrentlyInIVR(); WriteToDisk(); return(true); } else { Trace.TraceWarning("record is null"); return(false); } }//lock (objLock) }
public bool Remove(String RecordID) { Trace.TraceInformation("Enter."); lock (objLock) { if (RecordID != null && RecordID != String.Empty) { CallbackRecord ToBeRemoved = null; foreach (CallbackRecord record in _Records) { if (record.ID == RecordID) { ToBeRemoved = record; break; } } if (ToBeRemoved != null) { Trace.TraceInformation("Record list size (before):" + _Records.Count.ToString()); _Records.Remove(ToBeRemoved); Trace.TraceInformation("Record with ID = " + RecordID + " was removed from the list."); Trace.TraceInformation("Record list size (after):" + _Records.Count.ToString()); iRecordCount = _Records.Count; UpdateNumberOfRecordsCurrentlyInIVR(); WriteToDisk(); return(true); } else { Trace.TraceWarning("No record with id " + RecordID + " was found."); return(false); } } else { Trace.TraceWarning("RecordID is either null or empty."); return(false); } } }
public int GetNumberOfContactAheadOf(CallbackRecord record) { try { if (_Records == null) { Trace.TraceWarning("_Records is null"); return(-1); } if (record == null) { Trace.TraceWarning("record is null"); return(-1); } int iNumberOfRecordsAhead = 0; lock (objLock) { if (_Records.Count == 0) { return(0); } foreach (CallbackRecord r in _Records) { if (r.ID != record.ID) { if (r.QueueStartTime <= record.QueueStartTime) { iNumberOfRecordsAhead++; } } //if (r.ID != record.ID) } //foreach (CallbackRecord r in _Records) } //lock (objLock) return(iNumberOfRecordsAhead); } catch (Exception ex) { Trace.TraceError("Exception:" + ex.Message + Environment.NewLine + "StackTrace:" + ex.StackTrace); return(-1); } }
public void AddContact(CallbackRecord record) { if (record == null) { return; } iContactsWaiting++; double lQueueTime = DateTime.Now.Subtract(record.RequestDate).TotalSeconds; if (lQueueTime > dLongestQueueTime) { dLongestQueueTime = lQueueTime; } dTotalQueueTime = dTotalQueueTime + lQueueTime; }
public CallbackRecordStatusUpdateEventArgs(CallbackRecord Record) { _Record = Record; }
public CallbackRecordStatusUpdateEventArgs() { _Record = null; }
void _SendReentryRequest(object state) { lock (objLockReentry) { try { Trace.TraceInformation("Enter."); if (state == null) { Trace.TraceWarning("state is null"); return; } String sRecordID = (String)state; Trace.TraceInformation("Record " + sRecordID + " Attempt reentry"); CallbackRecord record = _recordManager.GetRecordByID(sRecordID); if (record == null) { Trace.TraceWarning("Could not get record " + sRecordID + " from recordManager."); return; } Trace.TraceInformation("Record " + record.ID + " is in status " + record.Status.ToString()); if (record.Status != Constants.RecordStatus.NEW && record.Status != Constants.RecordStatus.RETRY && record.Status != Constants.RecordStatus.PURGED) { Trace.TraceInformation("Record " + record.ID + " is in a status that cannot be reentered."); return; } try { String sRequestID = Guid.NewGuid().ToString(); String sURL = "http://" + _settingsManager.UCCXMasterNode + ":" + _settingsManager.ApplicationSettings.UCCXApplicationPort + "/" + _settingsManager.ApplicationSettings.UCCXCallbackPrefix + "?"; sURL = sURL + "id=" + System.Web.HttpUtility.UrlEncode(record.ID); sURL = sURL + "&dnis=" + System.Web.HttpUtility.UrlEncode(record.DNIS); sURL = sURL + "&targetcsq=" + System.Web.HttpUtility.UrlEncode(record.TargetCSQ); sURL = sURL + "&prompt=" + System.Web.HttpUtility.UrlEncode(record.Prompt); sURL = sURL + "&sessionid=" + System.Web.HttpUtility.UrlEncode(record.SessionID); sURL = sURL + "&implid=" + System.Web.HttpUtility.UrlEncode(record.ContactImplementationID); sURL = sURL + "&contactid=" + System.Web.HttpUtility.UrlEncode(record.ContactID); sURL = sURL + "&language=" + System.Web.HttpUtility.UrlEncode(record.Language); sURL = sURL + "&customvar1=" + System.Web.HttpUtility.UrlEncode(record.CustomVar1); sURL = sURL + "&customvar2=" + System.Web.HttpUtility.UrlEncode(record.CustomVar2); sURL = sURL + "&customvar3=" + System.Web.HttpUtility.UrlEncode(record.CustomVar3); sURL = sURL + "&customvar4=" + System.Web.HttpUtility.UrlEncode(record.CustomVar4); sURL = sURL + "&customvar5=" + System.Web.HttpUtility.UrlEncode(record.CustomVar5); sURL = sURL + "&requeuecode=" + System.Web.HttpUtility.UrlEncode(record.RequeueCode); sURL = sURL + "&requeuecounter=" + System.Web.HttpUtility.UrlEncode(record.RequeueCounter); sURL = sURL + "&reqid=" + System.Web.HttpUtility.UrlEncode(sRequestID); Trace.TraceInformation("sURL -> " + sURL); String sErrorDescription = String.Empty; _recordManager.Update(record.ID, String.Empty, sRequestID, Constants.RecordStatus.PROCESSING, out sErrorDescription); if (SendRequestToServer(sURL, record.ID)) { Trace.TraceInformation("SendRequestToServer() returned true for record " + record.ID); } else { Trace.TraceInformation("SendRequestToServer() returned false for record " + record.ID); _recordManager.Update(record.ID, String.Empty, String.Empty, Constants.RecordStatus.RETRY, out sErrorDescription); } Trace.TraceInformation("Record " + record.ID + " was set to " + record.Status.ToString()); } catch (Exception ex) { Trace.TraceWarning("Record " + record.ID + " got Exception: " + ex.Message + Environment.NewLine + "Stacktrace: " + ex.StackTrace); } } catch (Exception ex) { Trace.TraceWarning("Exception: " + ex.Message + Environment.NewLine + "Stacktrace: " + ex.StackTrace); } }//lock (objLockReentry) }
public RealtimeReportsRecordsByCSQ(CallbackRecord record) { iContactsWaiting = 1; dLongestQueueTime = DateTime.Now.Subtract(record.RequestDate).TotalSeconds; dTotalQueueTime = dLongestQueueTime; }