void manager_DialBegin(object sender, DialBeginEvent e) { string srtAnumber = e.Attributes["destcalleridnum"].ToString(); string strBnumber = e.DialString; DateTime dtRingTime = e.DateReceived; string sUnique = e.DestUniqueId; this.Invoke((MethodInvoker) delegate { int index = this.dataGridView1.Rows.Add(); this.dataGridView1.Rows[index].Cells["A number"].Value = srtAnumber; this.dataGridView1.Rows[index].Cells["B number"].Value = strBnumber; this.dataGridView1.Rows[index].Cells["B ring time"].Value = dtRingTime; this.dataGridView1.Rows[index].Cells["uniqueID"].Value = sUnique; this.dataGridView1.Rows[index].HeaderCell.Value = String.Format("{0}", index + 1); //this.dataGridView1.Refresh(); }); return; }
private async void Manager_DialBegin(object sender, DialBeginEvent e) { Console.WriteLine(e); var destinationNumber = e.DialString.Replace("@asterisk", "").Replace("810", "+"); var callerNumber = e.CallerIdNum.Replace("810", "+").Replace("@asterisk", ""); string bitrixInnnerPhone = string.Empty; string crmNumber = string.Empty; CallType callType = CallType.Outgoing; bool localCall = destinationNumber.Length == 3 && callerNumber.Length == 3; if (localCall) { return; } bool incoming = destinationNumber.Length == 3; if (incoming) { bitrixInnnerPhone = destinationNumber; crmNumber = callerNumber; callType = CallType.Incoming; } else { bitrixInnnerPhone = callerNumber; crmNumber = destinationNumber; } var result = await restApi.SearchCRM(crmNumber); var userId = await restApi.GetUserIdByInternalPhone(bitrixInnnerPhone); CallInfo obj = new CallInfo { DestinationNumber = destinationNumber, CallerNumber = callerNumber, BitrixUserId = userId, CallStatusCode = (int)CallStatusCode.NOANSWER }; keys.Add(e.UniqueId, obj); var contactExist = result.result.Any(); obj.BitrixCallId = await restApi.ExternalCallRegister(new B24ExternalCallModel.ExternalCallDataModel { USER_PHONE_INNER = crmNumber, USER_ID = userId, SHOW = 1, TYPE = (int)callType, CRM_CREATE = contactExist ? 0 : 1, CRM_ENTITY_TYPE = contactExist ? result.result[0].CRM_ENTITY_TYPE : "CONTACT", CRM_ENTITY_ID = contactExist ? result.result[0].CRM_ENTITY_TYPE : null, CALL_START_DATE = obj.CallStartDate, PHONE_NUMBER = crmNumber, PHONE_NUMBER_INTERNATIONAL = crmNumber }); }