Exemplo n.º 1
0
        private string GetUri(CovidParameters covidParameters)
        {
            var uriBuilder = new UriBuilder(_httpClient.BaseAddress.AbsoluteUri + covidParameters.Uri);

            var query = HttpUtility.ParseQueryString(uriBuilder.Query);

            if (covidParameters.From > DateTime.MinValue && covidParameters.To > DateTime.MinValue)
            {
                query["from"]    = covidParameters.From.ToString("yyyy-MM-dd'T'HH:mm:ss.fffffff'Z'");
                query["to"]      = covidParameters.To.ToString("yyyy-MM-dd'T'HH:mm:ss.fffffff'Z'");
                uriBuilder.Query = query.ToString();
            }

            return(uriBuilder.ToString().Replace(_httpClient.BaseAddress.AbsoluteUri, ""));
        }
Exemplo n.º 2
0
        public async Task <List <CovidDTO> > GetCovidDataAsync(CovidParameters covidParameters)
        {
            var uriWithParameters = GetUri(covidParameters);

            var httpResponse = await _httpClient.GetAsync(uriWithParameters);

            var covidDataList = new List <CovidDTO>();

            if (httpResponse.IsSuccessStatusCode)
            {
                var content = await httpResponse.Content.ReadAsStringAsync();

                covidDataList = JsonConvert.DeserializeObject <List <CovidDTO> >(content);
                return(covidDataList);
            }

            return(covidDataList);
        }
Exemplo n.º 3
0
        private async Task <bool> SaveCovidDataIntoDb()
        {
            var covidParameters = new CovidParameters();
            var haveToSaveData  = false;

            if (_covidDbContext.CovidData.Count() == 0)
            {
                covidParameters.Uri = uriDayOneTotal;
                haveToSaveData      = true;
            }
            else
            {
                var lastSavedDate = _covidDbContext.CovidData.OrderByDescending(d => d.Date).First().Date;

                if (lastSavedDate < DateTime.Now)
                {
                    covidParameters.Uri  = uriByCountryTotal;
                    covidParameters.From = lastSavedDate.AddDays(1);
                    covidParameters.To   = DateTime.Now;
                    haveToSaveData       = true;
                }
            }

            if (haveToSaveData)
            {
                var covidData = await GetCovidAsync(covidParameters);

                if (covidData.Count > 0)
                {
                    covidData.OrderByDescending(d => d.Date);
                    _covidDbContext.AddRange(covidData);
                    _covidDbContext.SaveChanges();
                    return(true);
                }

                return(false);
            }

            return(false);
        }
Exemplo n.º 4
0
 private async Task <List <CovidDTO> > GetCovidAsync(CovidParameters covidParameters)
 {
     return(await _covidService.GetCovidDataAsync(covidParameters));
 }