private static async void SendMessageToEventHub(CallDetailRecord callDetailRecord) { // Serialize the Call Detail Record into JSON and send to event hub try { var messagestring = JsonConvert.SerializeObject(callDetailRecord, new JsonSerializerSettings() { ContractResolver = new CamelCasePropertyNamesContractResolver() }); EventData data = new EventData(Encoding.UTF8.GetBytes(messagestring)); hubClient.Send(data); Console.WriteLine("Sent message: {0} at time {1}.", messagestring.ToString(), DateTime.UtcNow.ToString("yyyyMMdd hh:mm:ss")); } catch (Exception exception) { Console.WriteLine(DateTime.Now.ToString() + " > Exception: " + exception.ToString()); } }
public void LogCall(CCallDetailRecord record) { try { CallDetailRecord dbrecord = new CallDetailRecord(); dbrecord.answer = record.answerTime.ToString("yyyyMMddHHmmss"); dbrecord.destination = record.destination; dbrecord.disposition = record.Disposition.ToString(); dbrecord.duration = record.Duration; dbrecord.endtime = record.endTime.ToString("yyyyMMddHHmmss"); dbrecord.source = record.source; dbrecord.start = record.startTime.ToString("yyyyMMddHHmmss"); dbrecord.type = record.type.ToString(); dbrecord.workcode = record.Workcode; dataContext.CallDetailRecords.InsertOnSubmit(dbrecord); dataContext.SubmitChanges(); } catch (Exception ex) { System.Windows.MessageBox.Show(ex.ToString(), "Error# 4008: " + ex.Message); } }
private static void GenerateRandomEvents() { // Load Sample Data Towers into list var towerList = SampleData_Towers.GetTowers().ToList(); var towerWeight = new List <int>() { 2, 4, 2, 6, 10, 3, 3, 16, 4, 13, 3, 7, 7, 4, 6, 4, 4, 2 }; // Load sample mobile numbers into list var numberList = new List <string>(); for (int i = 215550000; i <= 215559999; i++) { numberList.Add(i.ToString()); } // Load sample websites into list var uriList = new List <string>() { "google.com", "bing.com", "facebook.com", "vodafone.net.nz", "nzherald.co.nz", "stuff.co.nz", "192.168.0.98", "microsoft.com", "hp.com", "lenovo.com", "dell.com", "acer.com", "whatsapp.com", "skype.com", "viber.com" }; var uriListWeight = new List <int>() { 10, 11, 16, 8, 13, 8, 3, 5, 2, 2, 2, 3, 8, 7, 2 }; // load call types into list var callTypes = new List <string>() { "call", "sms", "data" }; var callTypeWeight = new List <int>() { 14, 32, 54 }; // loop indefinately while (true) { // randomize data var randomTower = GetRandomEventNum(towerList.Count, towerWeight); var randomCallType = GetRandomEventNum(callTypes.Count, callTypeWeight); var randomNumber = numberList[random.Next(0, numberList.Count)]; var randomUri = GetRandomEventNum(uriList.Count, uriListWeight); // construct call detail record var callDetailRecord = new CallDetailRecord(); if (callTypes[randomCallType].Equals("call")) { callDetailRecord = new CallDetailRecord { EventDate = DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ssZ"), TowerId = towerList[randomTower].TowerId.ToString(), FromNumber = randomNumber.ToString(), ToNumber = randomNumber.ToString(), Type = "call", Duration = random.Next(1, 60), IMEI = "" }; } else if (callTypes[randomCallType].Equals("sms")) { callDetailRecord = new CallDetailRecord { EventDate = DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ssZ"), TowerId = towerList[randomTower].TowerId.ToString(), FromNumber = randomNumber.ToString(), ToNumber = randomNumber.ToString(), Type = "sms", Duration = 0, IMEI = "" }; } else { callDetailRecord = new CallDetailRecord { EventDate = DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ssZ"), TowerId = towerList[randomTower].TowerId.ToString(), FromNumber = randomNumber.ToString(), Type = "data", Duration = 0, Bytes = random.Next(1, 1024), Protocol = 6, Port = 80, IMEI = "", Uri = uriList[randomUri].ToString() }; } SendMessageToEventHub(callDetailRecord); TimeOfDayWait(); } }