コード例 #1
0
        static void generateStandup(int offset = 0, bool showOnCompletion = true)
        {
            KanbanFlow kb = new KanbanFlow();

            kb.SignIn();
            kb.populateBoard();
            kb.populateDueDates();

            CalendarServices cs = new CalendarServices();

            cs.SignIn();

            WeatherClient wc = new WeatherClient();

            wc.SetToken();

            StandupReport report = new StandupReport(cs, kb, wc);
            string        path   = report.GenerateReport(offset);

            if (showOnCompletion && path != "")
            {
                Process p = new Process();
                p.StartInfo = new ProcessStartInfo(path);
                p.Start();
            }
        }
コード例 #2
0
ファイル: Form1.cs プロジェクト: TheNiels1997/launcher
        private async void Init()
        {
            #region WeatherClientInit
            string wClientPath = string.Format(@"{0}\wClientSettings", Environment.CurrentDirectory);
            if (!File.Exists(wClientPath))
            {
                settings          = new ClientSettings();
                settings.DayCount = 5;
                settings.Locale   = "en";
                settings.Units    = "e";

                using (SearchDialog diag = new SearchDialog())
                {
                    diag.CancelButtonEx.Visible = false;

                    if (diag.ShowDialog() == DialogResult.OK)
                    {
                        settings.Location = (WeatherLocation)diag.SelectedItem.Tag;
                    }
                }

                await settings.Save(wClientPath);
            }
            else
            {
                settings = await ClientSettings.Load(wClientPath);
            }

            client = new WeatherClient(settings);
            client.WeatherDataReceived += Client_WeatherDataReceived;
            #endregion
        }
コード例 #3
0
        private static async Task CompleteDialog(IDialogContext context, ComplexWeatherForm state)
        {
            await context.PostAsync("Wait a sec. Thinking...", "en-US");

            var weatherClient = new WeatherClient("88597cb7a556c191905de0f52f23d7d6");
            string message;
            try
            {
                var forecastArray = await weatherClient.Forecast(state.City);
                var forecast = forecastArray?.SingleOrDefault(f => f.When.Date == state.Date?.Date);

                if (forecast != null)
                {
                    if (state.Parameter == ComplexParameterOptions.Humidity) { message = $"The humidity on {forecast.ShortDate} in {forecast.City} is {forecast.Humidity}\r\n"; }
                    else if (state.Parameter == ComplexParameterOptions.Pressure) { message = $"The pressure on {forecast.ShortDate} in {forecast.City} is {forecast.Pressure}\r\n"; }
                    else if (state.Parameter == ComplexParameterOptions.Temperature) { message = $"The temperature on {forecast.ShortDate} in {forecast.City} is {forecast.Temp}\r\n"; }
                    else { message = "Sorry, unknown parameter \"{parameter}\" requested... Try again"; }
                }
                else { message = "Sorry! I was not able to get the forecast."; }
            }
            catch (Exception)
            {
                message = $"Sorry! I was not able to get the forecast.";
            }

            await context.PostAsync(message, "en-US");
            context.Done<object>(null);
        }
コード例 #4
0
 public IndexModel(ILogger <IndexModel> logger, WeatherClient weatherClient, ProxyHttpClient proxyHttpClient)
 {
     _logger              = logger;
     this.weatherClient   = weatherClient;
     this.proxyHttpClient = proxyHttpClient ?? throw new System.ArgumentNullException(nameof(proxyHttpClient));
     Forecasts            = new WeatherForecast[] { };
 }
コード例 #5
0
        public void Initialize()
        {
            var appSettingsMock = new Mock <IOptions <AppSettings> >();
            var httpClientMock  = new Mock <IHttpClientFactory>();

            _weatherClient = new WeatherClient(appSettingsMock.Object, httpClientMock.Object);
        }
コード例 #6
0
            // Syntax SIML


            public string Evaluate(Context parameter)
            {
                string cityname = ""; string cdeget = ""; string value = ""; string valvar = ""; bool flagok = true;

                if (parameter.Element.Attribute("City") != null)
                {
                    cityname = parameter.Element.Attribute("City").Value;
                }

                if (parameter.Element.Attribute("Value") != null)
                {
                    value = parameter.Element.Attribute("Value").Value;
                }

                // Get API Key in Bot User Settings
                string key = parameter.Bot.Settings["Weatherundergound_APIkey"].Value;
                // Get Bot User language
                String        querylanguage = parameter.User.Settings[botlanguage_variable].Value.ToUpper();
                WeatherClient client        = new WeatherClient(key);

                client.GetForecast(QueryType.GlobalCity, new QueryOptions()
                {
                    Country = "France", City = cityname, Language = querylanguage
                });



                return(valvar);
            }
コード例 #7
0
        protected override void OnStart(string[] args)
        {
            //Set up MargieBot
            bot = new Bot();

            var responders = new List <AdamWeatherBotResponder>()
            {
                new AdamWeatherBotResponder()
            };

            foreach (var responder in responders)
            {
                bot.Responders.Add(responder);
            }

            //Set up WUnderground stuff
            string        WUnderkey    = ConfigurationManager.AppSettings["WUndergroundKey"];
            WeatherClient WUnderClient = new WeatherClient(WUnderkey);

            WeatherGetter.Client = WUnderClient;

            bot.ConnectionStatusChanged += (bool isConnected) => {
                if (!isConnected)
                {
                    bot.Connect(ConfigurationManager.AppSettings["SlackBotKey"]);
                    Console.WriteLine("-------------------------BOT RECONNECTED!-------------------------");
                }
            };

            bot.Connect(ConfigurationManager.AppSettings["SlackBotKey"]);
            Console.WriteLine("-------------------------BOT CONNECTED!-------------------------");
        }
コード例 #8
0
        //
        // GET: /Home/

        public async Task <ActionResult> Index()
        {
            ServicesModel model         = new ServicesModel();
            NewsClient    newsClient    = new NewsClient();
            WeatherClient weatherClient = new WeatherClient();

            model.AddMessage("Index запущен");

            model.AddMessage("Выполнение задачи получения новостей");

            // После вызова метода newsClient.GetNewsAsync() поток IIS вернется в пул потоков.
            // Поток, который был создан в методе GetNewsAsync() получив ответ от службы продолжит выполнение
            // данного метода действия.
            model.News = await newsClient.GetNewsAsync(); // задержка 2 секунды

            model.AddMessage("Выполнение задачи получения температуры");

            // На этом этапе будет создан еще один поток, предыдущий поток прекратит свою работу.
            model.Weather = await weatherClient.GetWeatherInfoAsync(); // задержка 2 секунды

            model.AddMessage("Index завершен");

            // ответ клиенту будет возвращать поток который был создан при вызове GetWeatherInfoAsync()
            return(View(model));
        }
コード例 #9
0
        public async Task OnGet([FromServices] WeatherClient client)
        {
            Name      = "Tye 5";
            Forecasts = await client.GetWeatherAsync();

            _logger.LogDebug("Index.html visited!");
        }
コード例 #10
0
        //
        // GET: /Home/

        // В данном контроллере метод IndexAsync будет выполнен потоком из пула потоков IIS
        // Во время выполнения метода IndexAsync будет запущено несколько асинхронных задач.
        // Когда все асинхронные задачи завершат работу в отдельном потоке
        // будет запущен метод IndexCompleted, который вернет ответ клиенту.

        // В данном случае поток из пула IIS будет блокирован минимальное время и сможет обработать большее
        // количество входящих запросов.

        public void IndexAsync()
        {
            ServicesModel model         = new ServicesModel();
            NewsClient    newsClient    = new NewsClient();
            WeatherClient weatherClient = new WeatherClient();

            AsyncManager.Parameters["model"] = model;

            model.AddMessage("IndexAsync запущен");

            AsyncManager.OutstandingOperations.Increment(); // указываем, что появляется новая асинхронная задача. (счетчик +1)
            newsClient.BeginGetNews(ar =>
            {
                model.AddMessage("Выполнение задачи получения новостей");
                model.News = newsClient.EndGetNews(ar);
                AsyncManager.OutstandingOperations.Decrement(); // указываем, что асинхронная задача завершена. (счетчик -1)
            });

            AsyncManager.OutstandingOperations.Increment(); // указываем, что появляется новая асинхронная задача. (счетчик +1)
            weatherClient.BeginGetTempereture(ar =>
            {
                model.AddMessage("Выполнение задачи получения температуры");
                model.Weather = weatherClient.EndGetWeatherInfo(ar);
                AsyncManager.OutstandingOperations.Decrement(); // указываем, что асинхронная задача завершена. (счетчик -1)
            });
        }
コード例 #11
0
        public async Task <string> BuildResult()
        {
            WeatherClient OWM = new WeatherClient("88597cb7a556c191905de0f52f23d7d6");
            var           res = await OWM.Forecast(Location);

            var           r  = res[Offset];
            StringBuilder sb = new StringBuilder();

            if (Measure(Measurement.Temp))
            {
                sb.Append($"The temperature on {r.Date} in {Location} is {r.Temp}\r\n");
            }
            if (Measure(Measurement.Pressure))
            {
                sb.Append($"The pressure on {r.Date} in {Location} is {r.Pressure}\r\n");
            }
            if (Measure(Measurement.Humidity))
            {
                sb.Append($"Humidity on {r.Date} in {Location} is {r.Humidity}\r\n");
            }
            if (sb.Length == 0)
            {
                return("I do not understand");
            }
            else
            {
                return(sb.ToString());
            }
        }
コード例 #12
0
        public WindModel GetWeatherWind(string cityName = "Kazan")
        {
            WeatherClient client       = new WeatherClient(m_accessKey);
            var           resourceData = client.GetCurrentWeatherSourceDataAsync <OpenWeatherMapModel>(cityName, "en").Result;
            var           resultData   = client.GetCurrentWindResultDataAsync(_logger, cityName, resourceData);

            return(resultData.Result);
        }
コード例 #13
0
 public WeatherClientTests()
 {
     _httpClient     = new Mock <IHttpClient>();
     _logger         = new Mock <ILogger>();
     _weatherResults = @"<?xml version=""1.0"" encoding=""UTF - 8""?><report><time/><coords><x>3916.234</x><y>169.914</y><z>6.33</z></coords><code>NMR</code><message>Another day of everyday normal regular weather, business as usual, unless it’s going to be like the time of the Great Paprika Mayonnaise Incident of 2014, that was some pretty nasty stuff.</message><varX-Rating>8</varX-Rating></report>";
     _httpClient.Setup(x => x.DoGet(It.IsAny <string>())).Returns(Task.FromResult(_weatherResults));
     _weatherClient = new WeatherClient(_httpClient.Object, _logger.Object, "uri");
 }
コード例 #14
0
        public IEnumerable <WeatherModel> GetWeatherTemperatures5Days(string cityName = "Kazan", string metric = "celsius")
        {
            WeatherClient client       = new WeatherClient(m_accessKey);
            var           resourceData = client.GetFiveDayForecastApiAsync <WeatherFiveDaysData>(cityName, "en").Result;
            var           resultData   = client.GetWeather5DaysResultDataAsync(_logger, cityName, metric, resourceData);

            return(resultData.Result);
        }
コード例 #15
0
 public MainPage()
 {
     InitializeComponent();
     client = new WeatherClient(this);
     client.getWeather();
     // Código de ejemplo para traducir ApplicationBar
     //BuildLocalizedApplicationBar();
 }
コード例 #16
0
        public WeatherModel GetWeatherTemperature(string cityName = "Kazan", string metric = "celsius")
        {
            WeatherClient client       = new WeatherClient(m_accessKey);
            var           resourceData = client.GetCurrentWeatherSourceDataAsync <OpenWeatherMapModel>(cityName, "en").Result;
            var           resultData   = client.GetCurrentWeatherResultDataAsync(_logger, cityName, metric, resourceData);

            return(resultData.Result);
        }
コード例 #17
0
 public GetByCityIdHandler(
     WeatherClient weatherClient,
     IPublishEndpoint publishEndpoint,
     IMapper mapper)
 {
     _weatherClient   = weatherClient;
     _publishEndpoint = publishEndpoint;
     _mapper          = mapper;
 }
コード例 #18
0
        async Task GetWeatherAsync(ServicesModel model)
        {
            model.AddMessage("Запуск получения погоды");
            WeatherClient weatherClient = new WeatherClient();

            model.Weather = await weatherClient.GetWeatherInfoAsync();

            model.AddMessage("Завершение получения погоды");
        }
コード例 #19
0
 public GetByCityNameFromXmlResponseHandler(
     WeatherClient weatherClient,
     IPublishEndpoint publishEndpoint,
     IMapper mapper)
 {
     _weatherClient   = weatherClient;
     _publishEndpoint = publishEndpoint;
     _mapper          = mapper;
 }
コード例 #20
0
ファイル: SearchDialog.cs プロジェクト: TheNiels1997/launcher
        private void SearchDialog_Load(object sender, EventArgs e)
        {
            ClientSettings settings = new ClientSettings();

            settings.Locale = "en";

            client = new WeatherClient(settings, null);
            client.SearchDataReceived += Client_SearchDataReceived;
        }
コード例 #21
0
        public Task StartAsync(CancellationToken cancellationToken)
        {
            _client = new WeatherClient(_configuration.ApiKey);

            _runCts = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken);

            _runTask = RunAsync(_runCts.Token);

            return(Task.CompletedTask);
        }
コード例 #22
0
        public void TestGetWeatherLondon()
        {
            using (WeatherClient client = new WeatherClient(uri))
            {
                string  city   = "London";
                Weather result = client.GetWeatherAsync(city).Result;

                Assert.AreEqual(city, result.City);
            }
        }
        public void TestGetWeatherLondon()
        {
            using (WeatherClient client = new WeatherClient(uri))
            {
                string  city   = "London";
                Weather result = client.GetWeatherResilientAsync(city).Result;

                StringAssert.Contains(result.City, city);
                StringAssert.Contains(result.City, "fallback"); // in case of fallback -> is added to city name
            }
        }
コード例 #24
0
        public void GetOneCallApiTest()
        {
            WeatherClient qWMClient = new WeatherClient(AccessKey);

            // OneCallExclude[] oneCallExcludes = { OneCallExclude.Current, OneCallExclude.Daily };

            foreach (Сoordinates coord in _citiesCoordinates)
            {
                OneCallModel data = qWMClient.GetOneCallApiAsync <OneCallModel>(coord.Lat, coord.Lon, "en").Result;
            }
        }
コード例 #25
0
        public static IWeatherService ResolveWeatherService()
        {
            var configuration = new ConfigurationBuilder <ClientConfiguration>()
                                .FromResource("Weather.Api.Config.ClientConfiguration.json")
                                .AsJsonFormat()
                                .BuildForEnvironment("dev");

            var client  = new WeatherClient(configuration.ApiUrl);
            var service = new WeatherService(client, configuration);

            return(service);
        }
コード例 #26
0
        public static async Task gRPCTest()
        {
            System.Console.WriteLine("Retrieving gRPC weather forecast info...");
            AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", true);

            // Allow http: This switch must be set before creating the GrpcChannel/HttpClient. https://docs.microsoft.com/en-us/aspnet/core/grpc/troubleshoot?view=aspnetcore-3.1#call-insecure-grpc-services-with-net-core-client
            var channel = GrpcChannel.ForAddress("https://*****:*****@reply}");
        }
コード例 #27
0
        public void CreateWithOnlyApiKey_CreatedWithDefaultSettings()
        {
            var weatherClient = new WeatherClient(apiKey);

            Assert.AreEqual(apiKey, weatherClient.Settings.AppId);
            Assert.AreEqual("2.5", weatherClient.Settings.Version);
            Assert.AreEqual("api.openweathermap.org/data", weatherClient.Settings.BaseURL);
            Assert.IsFalse(weatherClient.Settings.ThrowOnError);
            Assert.AreEqual(3, weatherClient.Settings.Retries);
            Assert.AreEqual(TimeSpan.FromSeconds(1), weatherClient.Settings.TimeBetweenRetries);
            Assert.IsFalse(weatherClient.Settings.ExponentialBackoffInRetries);
        }
コード例 #28
0
        public Task <ForecastWeather> GetForecastWeatherAsync(Coordinates coords, WeatherClient clientType = WeatherClient.Yahoo, CancellationToken cancellationToken = default(CancellationToken))
        {
            switch (clientType)
            {
            case WeatherClient.Yahoo:
                return(_yahooWeatherClient.GetForecastWeatherByLocationAsync(coords, cancellationToken));

            case WeatherClient.DarkSky:
                return(_darkSkyClient.GetForecastWeatherByLocationAsync(coords, cancellationToken));
            }

            throw new InvalidOperationException($"Weather client of type '{clientType}' does not have a handler.");
        }
コード例 #29
0
ファイル: Index.cshtml.cs プロジェクト: adrwer/ondotnet
        public async Task OnGet([FromServices] WeatherClient client)
        {
            Forecasts = await client.GetWeatherAsync();

            if (Forecasts.Count() == 0)
            {
                ErrorMessage = "We are unable to fetch weather info right now. Please try again after some time.";
            }
            else
            {
                ErrorMessage = string.Empty;
            }
        }
コード例 #30
0
        public void GetHourlyForecastLimitedHoursTest()
        {
            // https://openweathermap.org/api/hourly-forecast
            var qWMClient = new WeatherClient(AccessKey, WeatherClient.DefaultApiTimeoutSec, WeatherClient.DefaultProApiUrl);

            foreach (Сoordinates coord in _citiesCoordinates)
            {
                var data = qWMClient.GetHourlyForecastApiAsync <HourlyForecastModel>(coord.Lat, coord.Lon, "en", 6).Result;

                Assert.AreEqual(6, data.NumHourlyForecasts);
                Assert.AreEqual(6, data.HourlyForecasts.Count);
            }
        }
コード例 #31
0
ファイル: Program.cs プロジェクト: emilast/webapi-nswag-demo
        static async Task Main(string[] args)
        {
            Console.WriteLine("5 day forecast:");

            var client    = new WeatherClient(new ApiConfiguration());
            var forecasts = await client.FivedaysAsync();

            foreach (var forecast in forecasts)
            {
                Console.WriteLine($"{forecast.Date}: {forecast.TemperatureC} {forecast.TemperatureF} {forecast.Summary}");
            }

            Console.ReadKey();
        }
コード例 #32
0
		public WeatherMiddleware(OwinMiddleware next, WeatherClient client)
			: base(next)
		{
			_client = client;
		}