public void TestMineHistoricWeatherValues()
        {
            // Arrange
            var    regionSubUrl        = "us/nj/princeton";
            string smartGridRegionName = "PJM";
            var    timeZone            = "Eastern Standard Time";
            var    regionLat           = 40.348444276169;
            var    regionLong          = -74.6428556442261;

            var startDateTime = DateTime.Now.AddDays(-3);
            var endDateTime   = DateTime.Now.AddDays(-1);

            var wundergroundApiUrl        = CloudConfigurationManager.GetSetting("WundergroundApiUrl");
            var wundergroundApiKey        = CloudConfigurationManager.GetSetting("WundergroundApiKey");
            var selfThrottlingMethod      = "AzureTableStorageCallRecollection";
            var maxNumberOfCallsPerMinute = 5;

            int regionId;

            using (var _objectModel = new SmartEnergyOM(databaseConnectionString))
            {
                regionId =
                    _objectModel.AddWeatherRegion(smartGridRegionName, timeZone, regionLat, regionLong).WeatherRegionID;
            }


            var wundergroundWeatherInteraction =
                new WundergroundWeatherInteraction(
                    selfThrottlingMethod,
                    maxNumberOfCallsPerMinute);

            WeatherDataMiner weatherDataMiner = new WeatherDataMiner(
                wundergroundApiUrl,
                wundergroundApiKey,
                selfThrottlingMethod,
                databaseConnectionString,
                maxNumberOfCallsPerMinute,
                wundergroundWeatherInteraction);

            // Act
            weatherDataMiner.MineHistoricWeatherValues(startDateTime, endDateTime, regionSubUrl, regionId);

            // Assert
            // Verify that each data point has been recorded in the database
            var results = wundergroundWeatherInteraction.GetHistoricWeatherData(
                wundergroundApiUrl,
                regionSubUrl,
                wundergroundApiKey,
                startDateTime,
                endDateTime);

            using (var _objectModel = new SmartEnergyOM(databaseConnectionString))
            {
                foreach (var result in results)
                {
                    var dataPoint = _objectModel.FindWeatherDataPoints(regionId, result.observationDateTime);
                    Assert.IsNotNull(dataPoint);
                }
            }
        }
Ejemplo n.º 2
0
        public void TestMineHistoricWeatherValues_ByWundergroundLocationName()
        {
            // Arrange
            var regionSubUrl        = "Norway/Kristiansand";
            var smartGridRegionName = "Norway_Kristiansand";
            var timeZone            = "Central European Standard Time";
            var regionLat           = 58.24158635676374;
            var regionLong          = 8.096923830624974;

            var startDateTime = new DateTime(2017, 1, 1); // DateTime.Now.AddDays(-10);
            var endDateTime   = new DateTime(2017, 2, 1); // var startDateTime = DateTime.Now.AddDays(-1);

            var wundergroundApiUrl        = CloudConfigurationManager.GetSetting("WundergroundApiUrl");
            var wundergroundApiKey        = CloudConfigurationManager.GetSetting("WundergroundApiKey");
            var selfThrottlingMethod      = "AzureTableStorageCallRecollection";
            var maxNumberOfCallsPerMinute = 5;

            int regionId;

            using (var _objectModel = new SmartEnergyOM(databaseConnectionString))
            {
                regionId =
                    _objectModel.AddWeatherRegion(smartGridRegionName, timeZone, regionLat, regionLong, regionSubUrl).WeatherRegionID;
            }


            var wundergroundWeatherInteraction =
                new WundergroundWeatherInteraction(
                    selfThrottlingMethod,
                    maxNumberOfCallsPerMinute);

            WeatherDataMiner weatherDataMiner = new WeatherDataMiner(
                wundergroundApiUrl,
                wundergroundApiKey,
                selfThrottlingMethod,
                databaseConnectionString,
                maxNumberOfCallsPerMinute,
                wundergroundWeatherInteraction);

            // Act
            weatherDataMiner.MineHistoricWeatherValues(startDateTime, endDateTime, regionSubUrl, regionId);

            // Assert
            // Verify that each data point has been recorded in the database
            var results = wundergroundWeatherInteraction.GetHistoricWeatherData(
                wundergroundApiUrl,
                regionSubUrl,
                wundergroundApiKey,
                startDateTime,
                endDateTime);

            using (var _objectModel = new SmartEnergyOM(databaseConnectionString))
            {
                foreach (var result in results)
                {
                    var dataPoint = _objectModel.FindWeatherDataPoint(regionId, result.observationDateTime);
                    Assert.IsNotNull(dataPoint);
                }
            }
        }
Ejemplo n.º 3
0
        public void TestMineHistoricWeatherValues_ByGPS()
        {
            // Arrange
            var startDateTime = new DateTime(2017, 1, 1); // DateTime.Now.AddDays(-10);
            var endDateTime   = new DateTime(2017, 1, 2); // var startDateTime = DateTime.Now.AddDays(-1);

            var latitude            = 58.279231;
            var longtitude          = 6.892410;
            var smartGridRegionName = "Norway_Oye";
            var timeZone            = "Central European Standard Time";

            var wundergroundApiUrl        = CloudConfigurationManager.GetSetting("WundergroundApiUrl");
            var wundergroundApiKey        = CloudConfigurationManager.GetSetting("WundergroundApiKey");
            var selfThrottlingMethod      = "AzureTableStorageCallRecollection";
            var maxNumberOfCallsPerMinute = 5;

            int regionId;

            using (var _objectModel = new SmartEnergyOM(databaseConnectionString))
            {
                regionId =
                    _objectModel.AddWeatherRegion(smartGridRegionName, timeZone, latitude, longtitude, null).WeatherRegionID;
            }

            var wundergroundWeatherInteraction =
                new WundergroundWeatherInteraction(
                    selfThrottlingMethod,
                    maxNumberOfCallsPerMinute);

            WeatherDataMiner weatherDataMiner = new WeatherDataMiner(
                wundergroundApiUrl,
                wundergroundApiKey,
                selfThrottlingMethod,
                databaseConnectionString,
                maxNumberOfCallsPerMinute,
                wundergroundWeatherInteraction);

            // Act
            weatherDataMiner.MineHistoricWeatherValues(startDateTime, endDateTime, latitude, longtitude, regionId);

            // Assert
        }