private async void appBarTrainButton_Click(object sender, RoutedEventArgs e) { if (null != globals.gPersonGroupSelected && globals.gPersonGroupSelected.name.Equals("...") == false) { await PersonGroupCmds.TrainPersonGroups(globals.gPersonGroupSelected.personGroupId); } else { MessageDialog dialog = new MessageDialog("Select a PersonGroup to train", "Training Error"); await dialog.ShowAsync(); } }
//private async void AppBarButtonEditPersonGroup_Click(object sender, RoutedEventArgs e) //{ // if (null != personGroupListView.SelectedItem && !((PersonGroups)personGroupListView.SelectedItem).name.Equals("...")) // { // this.IsEnabled = false; // personGroupProgressRing.IsActive = true; // string response = await PersonGroupCmds.UpdatePersonGroups(globals.gPersonGroupSelected.personGroupId, // txtPersonGroup.Text,null); // personGroupProgressRing.IsActive = false; // this.IsEnabled = true; // } // else // { // MessageDialog dialog = new MessageDialog("Select an existing person group and change name", "Update Error"); // await dialog.ShowAsync(); // } // AppBarButtonPersonGroupRefresh_Click(null, null); //} private async void AppBarButtonDeletePerson_Click(object sender, RoutedEventArgs e) { //TODO: Delete all Person - Faces - Blobs - Thumbs if (null != personGroupListView.SelectedItem) { this.IsEnabled = false; personGroupProgressRing.IsActive = true; string response = await PersonGroupCmds.DeletePersonGroups(((PersonGroups)personGroupListView.SelectedItem).personGroupId); //delete blob CloudBlobDirectory groupdirectory = HttpHandler.blobContainer.GetDirectoryReference(globals.gPersonGroupSelected.personGroupId); BlobContinuationToken token = null; do { BlobResultSegment resultSegment = await groupdirectory.ListBlobsSegmentedAsync(token); token = resultSegment.ContinuationToken; foreach (IListBlobItem item in resultSegment.Results) { if (item.GetType() == typeof(CloudBlobDirectory)) { CloudBlobDirectory directory = (CloudBlobDirectory)item; BlobContinuationToken token2 = null; BlobResultSegment resultSegment2 = await directory.ListBlobsSegmentedAsync(token2); token2 = resultSegment2.ContinuationToken; foreach (IListBlobItem item2 in resultSegment2.Results) { if (item2.GetType() == typeof(CloudBlockBlob)) { CloudBlockBlob blob = (CloudBlockBlob)item2; blob.DeleteAsync(); } break; } } } } while (token != null); personGroupProgressRing.IsActive = false; this.IsEnabled = true; } else { MessageDialog dialog = new MessageDialog("Select a person group to delete!", "Delete Error"); await dialog.ShowAsync(); } AppBarButtonPersonGroupRefresh_Click(null, null); }
private async void AppBarButtonPersonGroupRefresh_Click(object sender, RoutedEventArgs e) { this.IsEnabled = false; personGroupProgressRing.IsActive = true; //appbarEditPersonGroupButton.IsEnabled = false; appbarPersonGroupNextButton.IsEnabled = false; appbarDeletePersonGroupButton.IsEnabled = false; List <PersonGroups> personGroups = await PersonGroupCmds.ListPersonGroups(); personGroupListView.ItemsSource = personGroups; //personGroupListView.DisplayMemberPath = "name"; globals.gPersonGroupList = personGroups; personGroupProgressRing.IsActive = false; this.IsEnabled = true; }
private async void AppBarButtonAddPersonGroup_Click(object sender, RoutedEventArgs e) { if (null == personGroupListView.SelectedItem || ((PersonGroups)personGroupListView.SelectedItem).name.Equals("...")) { if (txtPersonGroup.Text.Trim() != "") { this.IsEnabled = false; personGroupProgressRing.IsActive = true; string response = await PersonGroupCmds.AddPersonGroups(txtPersonGroup.Text.ToLower().Replace(' ', '_'), txtPersonGroup.Text, null); personGroupProgressRing.IsActive = false; this.IsEnabled = true; } else { MessageDialog dialog = new MessageDialog("Add a name to person group", "Add Error"); await dialog.ShowAsync(); } } AppBarButtonPersonGroupRefresh_Click(null, null); }
//private async Task btnFileQuery_Click() //{ // StorageFile file = null; // if (webcam.IsInitialized()) // { // // Stores current frame from webcam feed in a temporary folder // file = await webcam.CapturePhoto(); // FaceQuery(file); // } // else // { // if (!webcam.IsInitialized()) // { // // The webcam has not been fully initialized for whatever reason: // Debug.WriteLine("Unable to analyze visitor at door as the camera failed to initlialize properly."); // await speech.Read(SpeechContants.NoCameraMessage); // } // } // FaceQuery(file); // btnFileQuery.IsEnabled = true; //} private async void FaceQuery(StorageFile file) { CloudBlockBlob blob = null; string blobFileName = null; if (null != file) { progressRingMainPage.IsActive = true; BitmapImage bitmapImage = new BitmapImage(); IRandomAccessStream fileStream = await file.OpenAsync(FileAccessMode.Read); bitmapImage.SetSource(fileStream); blobFileName = System.Guid.NewGuid() + "." + file.Name.Split('.').Last <string>(); await HttpHandler.tempContainer.CreateIfNotExistsAsync(); BlobContainerPermissions permissions = new BlobContainerPermissions(); permissions.PublicAccess = BlobContainerPublicAccessType.Blob; await HttpHandler.tempContainer.SetPermissionsAsync(permissions); blob = HttpHandler.tempContainer.GetBlockBlobReference(blobFileName); await blob.DeleteIfExistsAsync(); await blob.UploadFromFileAsync(file); string uri = "https://api.projectoxford.ai/face/v1.0/detect?returnFaceId=true"; string jsonString = "{\"url\":\"" + HttpHandler.storagePath + "visitors/" + blobFileName + "\"}"; HttpContent content = new StringContent(jsonString, Encoding.UTF8, "application/json"); HttpResponseMessage response = await HttpHandler.client.PostAsync(uri, content); if (response.IsSuccessStatusCode) { string responseBody = await response.Content.ReadAsStringAsync(); if (null == globals.gPersonGroupList) { globals.gPersonGroupList = await PersonGroupCmds.ListPersonGroups(); } List <string> names = await VisitorCmds.CheckVisitorFace(responseBody, globals.gPersonGroupList); if (0 == names.Count) { await speech.Read(SpeechContants.VisitorNotRecognizedMessage); } else { UnlockDoor(string.Join(", ", names.ToArray())); } } else { string responseBody = await response.Content.ReadAsStringAsync(); globals.ShowJsonErrorPopup(responseBody); } await blob.DeleteAsync(); progressRingMainPage.IsActive = false; } }