示例#1
0
        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);
                }
            }
        }
示例#2
0
        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;
                }
            }
        }
示例#3
0
 private void AddNewCallEvent(VATRPCallEvent callEvent)
 {
     try
     {
         var dn       = callEvent.RemoteParty;
         var callItem = new RecentsCallItem()
         {
             CallerName   = dn,
             CallTime     = callEvent.StartTime,
             Duration     = callEvent.Status == VATRPHistoryEvent.StatusType.Missed ? -1 : callEvent.Duration,
             TargetNumber = callEvent.RemoteParty,
             CallStatus   = callEvent.Status,
             ContactId    = callEvent.Contact != null ? callEvent.Contact.DisplayName : String.Empty
         };
         if (callEvent.Status == VATRPHistoryEvent.StatusType.Missed)
         {
             MissedCallsList.Add(callItem);
         }
         CallsList.Add(callItem);
     }
     catch (Exception ex)
     {
         ServiceManager.LogError("AddNewCallEvent", ex);
     }
 }
            public async Task <List <TType> > GetCallResults()
            {
                List <TType> TResultList = null;

                try
                {
                    List <object> TGetResults = await API.MultiCallAsync(CallsList.ToArray());

                    TResultList = (from List <TType> TResults in TGetResults
                                   select TResults[0]).ToList();
                }
                catch (OperationCanceledException) { }
                return(TResultList);
            }
示例#5
0
        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;
            }
        }
示例#6
0
        public ActionResult Test(int accountid)
        {
            var client = new RestClient("https://api.calltrackingmetrics.com");

            var req = new RestRequest("api/v1/accounts/" + accountid + "/calls", Method.GET);

            req.AddHeader("Authorization", api);

            IRestResponse response = client.Execute(req);
            var           content  = response.Content;
            CallsList     m        = JsonConvert.DeserializeObject <CallsList>(response.Content);



            return(View(m));
        }
 public void AddCall(string GetMethod, object Params = null)
 {
     CallsList.Add(new object[] { GetMethod, typeof(TType), Params, CT, typeof(List <TType>) });
 }