private void SetDurationState(string receivedData, ILine line) { var durationSecs = FindDuration(receivedData); LogIntValue?.Invoke("Duration", durationSecs); if (durationSecs >= 0) { line.DurationSecs = durationSecs; } }
private void SetDurationState(TildaCIDHID.Public.CalllogDetail receivedData, ILine line) { var durationSecs = receivedData.Duration; LogIntValue?.Invoke("Duration", durationSecs); if (durationSecs >= 0) { line.DurationSecs = durationSecs; } }
private void SetLinesState(string receivedData) { try { if (receivedData == null) { return; } var lineNo = FindLineNumber(receivedData); if (lineNo == 0) { return; } ILine line = null; if (GetLinesMap().ContainsKey(GetLineKey(lineNo))) { line = GetLinesMap()[GetLineKey(lineNo)]; } if (line == null) { return; } lock (line) { var status = FindCallStatus(receivedData); LogStringValue?.Invoke("Status", status.ToString()); if (status > 0) { line.Status = status; } SetDurationState(receivedData, line); SetDialedNumberState(receivedData, line); var str = FindNumber(receivedData); if (str != string.Empty) { line.Number = str; LogStringValue?.Invoke("PhoneNumber", str); } var num2 = FindRingCounts(receivedData); if (num2 > 0) { line.RingCounts = num2; LogIntValue?.Invoke("RingCount", num2); } line.LastUpdate = DateTime.UtcNow; } } catch (Exception ex) { LogInternalException?.Invoke("SetLinesState", ex); } }
private int FindLineNumber(string strCallLog) { try { for (var i = 1; i <= LinesCount; i++) { if (strCallLog.IndexOf(GetLineKey(i), StringComparison.Ordinal) != -1) { LogIntValue?.Invoke("LineNumber", i); return(i); } } } catch (Exception ex) { LogInternalException?.Invoke("FindLineNumber", ex); } return(0); }
private void SetLinesState(TildaCIDHID.Public.CalllogDetail receivedData) { try { if (receivedData == null) { return; } var lineNo = receivedData.LineNumber; if (lineNo == 0) { return; } ILine line = null; if (GetLinesMap().ContainsKey(GetLineKey(lineNo))) { line = GetLinesMap()[GetLineKey(lineNo)]; } if (line == null) { return; } lock (line) { var status = FindCallStatus(receivedData); LogStringValue?.Invoke("Status", status.ToString()); if (status > 0) { line.Status = status; } if (receivedData.sUpdateFileds.IndexOf("StatusRecord", StringComparison.Ordinal) != -1) { if (!receivedData.Status_Record) { ActivePort.StartRecordLine(line.LineNumber); } else { ActivePort.StopRecordLine(line.LineNumber); } } if (receivedData.sUpdateFileds.IndexOf("Duration", StringComparison.Ordinal) != -1) { if (receivedData.Duration != -1) { SetDurationState(receivedData, line); } } if (receivedData.sUpdateFileds.IndexOf("DialNumber", StringComparison.Ordinal) != -1) { if (!string.IsNullOrEmpty(receivedData.DialNumber)) { SetDialedNumberState(receivedData, line); } } if (receivedData.sUpdateFileds.IndexOf("Number-", StringComparison.Ordinal) != -1) { if (!string.IsNullOrEmpty(receivedData.Number)) { var str = FindNumber(receivedData); if (str != string.Empty) { line.Number = str; LogStringValue?.Invoke("PhoneNumber", str); } } } if (receivedData.sUpdateFileds.IndexOf("Rings", StringComparison.Ordinal) != -1) { if (!string.IsNullOrEmpty(receivedData.Rings)) { var num2 = FindRingCounts(receivedData); if (num2 > 0) { line.RingCounts = num2; LogIntValue?.Invoke("RingCount", num2); } } } line.LastUpdate = DateTime.UtcNow; } } catch (Exception ex) { LogInternalException?.Invoke("SetLinesState", ex); } }