private async void OnConfirmImportButtonClicked(object sender, RoutedEventArgs e) { this.addPeopleInBatchesFlyout.Hide(); this.commandBar.IsOpen = false; this.progressControl.IsActive = true; try { string[] names = this.importNamesTextBox.Text.Split('\n'); foreach (var name in names) { string personName = Util.CapitalizeString(name.Trim()); if (string.IsNullOrEmpty(personName) || this.PersonsInCurrentGroup.Any(p => p.Name == personName)) { continue; } CreatePersonResult newPersonResult = await FaceServiceHelper.CreatePersonAsync(this.CurrentPersonGroup.PersonGroupId, personName); Person newPerson = new Person { Name = name, PersonId = newPersonResult.PersonId }; IEnumerable <string> faceUrls = await BingSearchHelper.GetImageSearchResults(string.Format("{0} {1} {2}", this.importImageSearchKeywordPrefix.Text, name, this.importImageSearchKeywordSufix.Text), count : 2); foreach (var url in faceUrls) { try { ImageAnalyzer imageWithFace = new ImageAnalyzer(url); await imageWithFace.DetectFacesAsync(); if (imageWithFace.DetectedFaces.Count() == 1) { await FaceServiceHelper.AddPersonFaceAsync(this.CurrentPersonGroup.PersonGroupId, newPerson.PersonId, imageWithFace.ImageUrl, imageWithFace.ImageUrl, imageWithFace.DetectedFaces.First().FaceRectangle); } } catch (Exception) { // Ignore errors with any particular image and continue } // Force a delay to reduce the chance of hitting API call rate limits await Task.Delay(250); } this.needsTraining = true; this.PersonsInCurrentGroup.Add(newPerson); } } catch (Exception ex) { await Util.GenericApiCallExceptionHandler(ex, "Failure during batch processing"); } this.progressControl.IsActive = false; }
private async Task QueryBingImages(string query) { this.progressRing.IsActive = true; try { IEnumerable <string> imageUrls = await BingSearchHelper.GetImageSearchResults(query, imageContent : this.ImageContentType, count : 30); this.imageResultsGrid.ItemsSource = imageUrls.Select(url => new ImageAnalyzer(url)); } catch (Exception ex) { this.imageResultsGrid.ItemsSource = null; await Util.GenericApiCallExceptionHandler(ex, "Failure querying Bing Images"); } this.progressRing.IsActive = false; }
private async Task QueryBingImages(string query) { this.progressRing.IsActive = true; try { IEnumerable <string> imageUrls = await BingSearchHelper.GetImageSearchResults(query, imageContent : string.Empty, count : 30); this.imageResultsGrid.ItemsSource = imageUrls.Select(url => new ImageAnalyzer(url)); this.autoSuggestBox.IsSuggestionListOpen = false; } catch (Exception ex) { this.imageResultsGrid.ItemsSource = null; if (!string.IsNullOrEmpty(query)) { await Util.GenericApiCallExceptionHandler(ex, "Failure searching on Bing Images"); } } this.progressRing.IsActive = false; }