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); } }
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}" }); } }
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); } }