예제 #1
0
        static void Main(string[] args)
        {
            IWeatherProvider provider  = new DummyWeatherProvider();
            IWeatherProvider provider2 = new OpenWeatherProvider();
            //---------------------------------------------------------------------------

            // provider.Start();
            //provider2.Start();

            string londonCity = "London";
            string lvivCity   = "Lviv";

            //var lvivWeather = provider.GetCurrentWeather(lvivCity);
            //  var londonWeather = provider.GetCurrentWeather(londonCity);
            // var londonWeatherForecast = provider.GetWeatherForecast(londonCity, 5);

            //  provider.Subscribe(lvivCity);
            // provider.Unsubscribe(lvivCity);
            //  provider.Subscribe(londonCity);
            //  provider2.Subscribe("Paris");

            provider2.OnWeatherUpdate += (sender, data) =>
            {
                Console.WriteLine(data, Color.Red);
            };
            //provider.OnWeatherUpdate += (sender, data) => Console.WriteLine(data, Color.Green);

            while (true)
            {
                var consoleText = Console.ReadLine();

                if (consoleText == "Start OpenWeather")
                {
                    provider2.Start();
                }

                if (consoleText.StartsWith("Subscribe"))
                {
                    var t = consoleText.Split(' ');
                    provider2.Subscribe(t[1]);
                }
                else if (consoleText.StartsWith("Unsubscribe"))
                {
                    var t = consoleText.Split(' ');
                    provider2.Unsubscribe(t[1]);
                }

                if (consoleText == "?")
                {
                    Console.WriteLine("Start", Color.Green);
                    Console.WriteLine("Subscribe", Color.Green);
                    Console.WriteLine("Unsubscribe", Color.Green);
                }
            }


            Console.ReadLine();
        }
예제 #2
0
        public async Task APIRequest()
        {
            var request = new WeatherRequest()
            {
                lon = (decimal)55.751999,
                lat = (decimal)37.617734
            };
            var provider = new OpenWeatherProvider(Configuration);
            var result   = await provider.GetCurrentWeather(request);

            Assert.True(string.IsNullOrEmpty(result.errorMessage));
            Assert.Contains("id", result.weather);
        }
예제 #3
0
 public WeatherHub()
 {
     Provider = new OpenWeatherProvider(Configuration);
 }