Exemplo n.º 1
0
        public GetWeaterResponse GetWeather(GetWeaterRequest request)
        {
            var response = new GetWeaterResponse();

            if (string.IsNullOrEmpty(request.CityName))
            {
                response.ErrorDescription = $"Bad request: No CityName in request.";
                return(response);
            }
            try
            {
                var date    = DateTime.UtcNow.Date.AddDays(1);
                var weather = WeaterDataItemStorer.GetWeather(request.CityName, date);
                if (weather == null)
                {
                    response.ErrorDescription = $"No weather for {request.CityName} on selected date {date.ToString("dd-MM-yyyy")}";
                    return(response);
                }
                response.CityName    = weather.CityName;
                response.Date        = date;
                response.Description = weather.Description;
                response.MinT        = weather.MinT;
                response.MaxT        = weather.MaxT;
                return(response);
            }
            catch (Exception ex)
            {
                response.ErrorDescription = $"Server error. Message:{ex.Message} Trace: {ex.StackTrace}";
                return(response);
            }
        }
Exemplo n.º 2
0
 public TomorrowCitiesRespinse GetCitiesForTomowow()
 {
     try
     {
         var cities = WeaterDataItemStorer.GetCitiesForDate(DateTime.UtcNow.Date.AddDays(1));
         return(new TomorrowCitiesRespinse()
         {
             Cities = cities
         });
     }
     catch (Exception ex)
     {
         return(new TomorrowCitiesRespinse()
         {
             ErrorDescription = $"Server error. Message:{ex.Message} Trace: {ex.StackTrace}"
         });
     }
 }
Exemplo n.º 3
0
        private async Task Invoke(DateTime time)
        {
            if (time < _nextRun)
            {
                return;
            }
            try
            {
                _logger.Log("Start collecting iteration");
                var wetherItems = await _parser.GetWeatherDataItemsAsync();

                WeaterDataItemStorer.UpdateRecords(wetherItems);
                _logger.Log($"wether data collected. {wetherItems.Count} records collected.");
            }
            catch (Exception ex)
            {
                _logger.Log($"Fail to collect weater. Will try again in 10 min. Exception: {ex.ToString()}");
            }
            finally
            {
                _nextRun = DateTime.UtcNow.AddMinutes(1);
            }
        }