public Task <CurrentWeatherInTownModel> GetWeatherAsync(GetWeatherMsg msg, CancellationToken cancellationToken) { using (var client = new HttpClient()) { var requestUrl = GetRequestUrl(msg.CityName); var response = client.GetAsync(requestUrl, cancellationToken).Result; var data = response.Content.ReadAsStringAsync().Result; var result = Convert(data); return(result); } }
public async Task <CurrentWeatherInTownModel> GetWeatherAsync(GetWeatherMsg msg, CancellationToken cancellationToken) { var work = new List <Task <CurrentWeatherInTownModel> >(); foreach (var weatherClient in _clients) { work.Add(weatherClient.GetWeatherAsync(msg, cancellationToken)); } _timer.Start(); var result = await Task.WhenAny(work).Result; _timer.Stop(); result.ElapsedTime = _timer.ElapsedTicks; Log.Information($"Response from {result.Origin} was acquired in {_timer.ElapsedTicks} ticks"); return(result); }