Esempio n. 1
0
        private async Task <IActionResult> ByTag()
        {
            var responseBody = new FlickrRoot();

            do
            {
                var response = await _http.GetAsync(BuildByTagQuery(responseBody.Photos.Page));

                responseBody = JsonConvert.DeserializeObject <FlickrRoot>(await response.Content.ReadAsStringAsync());
                await HandleRequestAsync(responseBody, response);
            } while (responseBody.Photos.Page < responseBody.Photos.Pages);

            return(new OkResult());
        }
Esempio n. 2
0
        private async Task HandleRequestAsync(FlickrRoot responseBody, HttpResponseMessage response)
        {
            var newPhotos = new List <string>();
            var dbPhotos  = await GetPhotosFromCache();

            foreach (var photo in responseBody.Photos.Photo)
            {
                if (dbPhotos.Find(el => el.Id == photo.Id) == null)
                {
                    newPhotos.Add(CreatePhotoUrl(photo));
                    await _context.AddAsync(photo);
                }
            }

            await _faceService.AnalyzePhotos(newPhotos);

            await _context.SaveChangesAsync();

            _memoryCache.Remove("FlickrPhotos");
        }