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