private void LoadAllCalls() { CallsList.Clear(); var callsItemDB = from VATRPCallEvent call in _historyService.AllCallsEvents orderby call.StartTime descending select call; foreach (var avCall in callsItemDB.Take(30)) { try { var dn = avCall.RemoteParty; var callItem = new RecentsCallItem() { CallerName = dn, CallTime = avCall.StartTime, Duration = avCall.Status == VATRPHistoryEvent.StatusType.Missed ? -1 : avCall.Duration, TargetNumber = avCall.RemoteParty, CallStatus = avCall.Status, ContactId = avCall.Contact != null ? avCall.Contact.DisplayName : string.Empty }; CallsList.Add(callItem); } catch (Exception ex) { LOG.Error("Exception on LoadAllCalls: " + ex.Message); } } }
public void RefreshList() { using ( var cmd = new MySqlCommand(@"SELECT UniqueId,CallDirection,CallerIDNum,CreateTime,AnswerTime,EndTime,BridgedTime,MonitorFile,TalkTime,WaitingTime FROM asterisk.CallsHistory C where CreateTime between @fromdate and @todate order by UniqueId", AppSettings.DbConnection)) { cmd.Parameters.AddWithValue("@fromdate", FromDate); cmd.Parameters.AddWithValue("@todate", ToDate); using (var dataReader = cmd.ExecuteReader()) { CallsList.Clear(); while (dataReader.Read()) { CallsList.Add(new CallsListDto { UniqueId = dataReader.GetNullableString("UniqueID"), CallerId = dataReader.GetNullableString("CallerIDNum"), Direction = dataReader.GetNullableString("CallDirection"), AnswerTime = dataReader.GetNullableDateTime("AnswerTime"), CreateTime = dataReader.GetNullableDateTime("CreateTime"), BridgedTime = dataReader.GetNullableDateTime("BridgedTime"), EndTime = dataReader.GetNullableDateTime("EndTime"), TalkTime = dataReader.GetNullableInt("TalkTime"), WaitingTime = dataReader.GetNullableInt("WaitingTime"), MonitorFileName = dataReader.GetNullableString("MonitorFile"), }); } dataReader.Close(); CallsCount = CallsList.Count; } } }
private void OnHistoryCallEvent(object o, VATRPCallEventArgs e) { if (this.Dispatcher.Thread != System.Threading.Thread.CurrentThread) { this.Dispatcher.BeginInvoke((Action)(() => this.OnHistoryCallEvent(o, e))); return; } var callEvent = o as VATRPCallEvent; _populatingCalls = true; switch (e.historyEventType) { case HistoryEventTypes.Add: if (callEvent != null) { AddNewCallEvent(callEvent); } break; case HistoryEventTypes.Load: this.AllCallsInfoLabel.Content = "Loading..."; this.MissedCallsInfoLabel.Content = "Loading..."; lstCallsBox.Visibility = Visibility.Collapsed; lstMissedCallsBox.Visibility = Visibility.Collapsed; LoadAllCalls(); PopulateCalls(CallsTab.SelectedIndex == 0); _populatingCalls = false; break; case HistoryEventTypes.Reset: CallsList.Clear(); MissedCallsList.Clear(); this.lstCallsBox.Visibility = Visibility.Collapsed; this.lstMissedCallsBox.Visibility = Visibility.Collapsed; this.AllCallsInfoLabel.Content = "Entry list is empty"; this.MissedCallsInfoLabel.Content = "Entry list is empty"; break; case HistoryEventTypes.Delete: if (callEvent != null) { DeleteCallEvent(callEvent); } break; } }