Exemple #1
0
        public async Task <IActionResult> GetAndSaveData()
        {
            WeatherDataEntry dataEntry = await ExternalDataProvider.GetCurrentWeatherData();

            await HistoryAPIDataProvider.SaveDataInHistory(dataEntry);

            return(View(dataEntry));
        }
Exemple #2
0
        public static void Main(string[] args)
        {
            var host = BuildWebHost(args);

            ExternalDataProvider.Initialize().Wait();
            HistoryAPIDataProvider.Initialize().Wait();
            host.Run();
        }
Exemple #3
0
        public void CanConstruct()
        {
            var restClient       = new Mock <IRestClient>();
            var clientRepository = new Mock <IRepository <Client> >();
            var serverTime       = new Mock <IServerTime>();

            var xDataProvider = new ExternalDataProvider(restClient.Object,
                                                         clientRepository.Object,
                                                         serverTime.Object);
        }
Exemple #4
0
        public void CallTrackingMetricDataCreatesNewContactWithAllValues()
        {
            var restClient       = new Mock <IRestClient>();
            var clientRepository = new LocalRepository <Client>();
            var serverTime       = new Mock <IServerTime>();

            serverTime.Setup(st => st.RequestStarted).Returns(new DateTime(2013, 01, 01, 8, 20, 0));
            serverTime.Setup(s => s.ParseToServerTimeZoneFromStandardUser("2013-01-01 10:17 AM", "yyyy-MM-dd hh:mm tt")).Returns(new DateTime(2013, 01, 01, 8, 17, 0));

            var client = ModelHelper.TestClient1AllDataNoReferences;

            client.CallTrackingMetricId = 9724;
            clientRepository.Add(client);



            var xDataProvider = new ExternalDataProvider(restClient.Object,
                                                         clientRepository,
                                                         serverTime.Object);

            string sampleJsonData =
                "{\"id\":3158334,\"account_id\":9724,\"name\":\"Restricted\",\"search\":null,\"referrer\":null,\"location\":null,\"source\":\"Website\",\"source_id\":14932,\"tgid\":28622,\"likelihood\":null,\"duration\":107,\"talk_time\":101,\"ring_time\":6,\"parent_id\":null,\"email\":null,\"street\":null,\"city\":\"\",\"state\":\"Stockholm\",\"country\":\"SE\",\"postal_code\":\"\",\"called_at\":\"2013-01-01 10:17 AM +02:00\",\"tracking_number_id\":28938,\"tracking_number\":\"+46844680390\",\"tracking_label\":null,\"business_number\":\"+4687541040\",\"business_label\":\"Winassist Växel\",\"receiving_number_id\":14464,\"dial_status\":\"completed\",\"billed_amount\":1080.0,\"billed_at\":\"2013-10-01T08:19:09\",\"caller_number_split\":[\"46\",\"8\",\"890443\"],\"excluded\":false,\"tracking_number_format\":\"+46-8-44680390\",\"business_number_format\":\"+46-8-7541040\",\"caller_number_format\":\"(+46) 889-0443\",\"alternative_number\":\"+468890443\",\"caller_number_complete\":\"+468890443\",\"caller_number\":\"+468890443\",\"visitor\":false,\"audio\":\"https://ct4.s3.amazonaws.com/accounts/AC31fe87364641848e5d08c041cac16c84/recordings/REef08b869be099e8c7aeb0d85b04a99d2\",\"tag_list\":[],\"notes\":null,\"latitude\":59.3323,\"longitude\":18.0629,\"extended_lookup_on\":false}";

            var ctmDataDeSerialized = JsonConvert.DeserializeObject <CallTrackingMetricsWebhookData>(sampleJsonData);

            var contact = xDataProvider.MapPhoneDataToContact(ctmDataDeSerialized);

            Assert.AreEqual("Phone", contact.LeadType);
            Assert.AreEqual("3158334", contact.Property.First(lp => lp.Type == "CTMId").Value);
            Assert.AreEqual("https://ct4.s3.amazonaws.com/accounts/AC31fe87364641848e5d08c041cac16c84/recordings/REef08b869be099e8c7aeb0d85b04a99d2", contact.Property.First(lp => lp.Type == "Audio").Value);
            Assert.AreEqual("+4687541040", contact.Property.First(lp => lp.Type == "BusinessNumber").Value);
            Assert.AreEqual("+468890443", contact.Property.First(lp => lp.Type == "CallerNumber").Value);
            Assert.AreEqual("SE", contact.Property.First(lp => lp.Type == "Country").Value);
            Assert.AreEqual("Website", contact.Property.First(lp => lp.Type == "TrackingNumberName").Value);
            Assert.AreEqual("Stockholm", contact.Property.First(lp => lp.Type == "State").Value);
            Assert.AreEqual("completed", contact.Property.First(lp => lp.Type == "Status").Value);
            Assert.AreEqual("+46844680390", contact.Property.First(lp => lp.Type == "TrackingNumber").Value);
            Assert.AreEqual("9724", contact.Property.First(lp => lp.Type == "CTMAccoutId").Value);
            Assert.AreEqual("107", contact.Property.First(lp => lp.Type == "Duration").Value);

            Assert.IsFalse(contact.Property.Any(lp => lp.Type == "LocationUrl"));
            Assert.IsFalse(contact.Property.Any(lp => lp.Type == "ReferalUrl"));
            Assert.IsFalse(contact.Property.Any(lp => lp.Type == "SearchPhrase"));
            Assert.IsFalse(contact.Property.Any(lp => lp.Type == "City"));
            Assert.IsFalse(contact.Property.Any(lp => lp.Type == "PostalCode"));
        }
Exemple #5
0
        public void CanGetPhoneData()
        {
            var restClient       = new Mock <IRestClient>();
            var clientRepository = new Mock <IRepository <Client> >();
            var serverTime       = new Mock <IServerTime>();

            var xDataProvider = new ExternalDataProvider(restClient.Object,
                                                         clientRepository.Object,
                                                         serverTime.Object);

            var restResponse = new Mock <IRestResponse>();

            restResponse.Setup(rr => rr.StatusCode).Returns(HttpStatusCode.OK);
            restResponse.Setup(rr => rr.Content).Returns("Some Content");
            restClient.Setup(rc => rc.Execute(It.Is <RestRequest>(r =>
                                                                  r.Resource ==
                                                                  "api/v1/accounts/1/calls.json?start_date=2014-01-01&end_date=2014-02-01")))
            .Returns(restResponse.Object);
            var startDate = new DateTime(2014, 01, 01);
            var endDate   = new DateTime(2014, 02, 01);
            var result    = xDataProvider.GetPhoneData(1, startDate, endDate);

            Assert.AreEqual("Some Content", result);
        }