Example #1
0
        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());
            }
        }
Example #2
0
 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);
     }
 }
Example #3
0
        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();
            }
        }