private async void AppBarButtonAddPersonGroup_Click(object sender, RoutedEventArgs e)
        {
            if (null == personGroupListView.SelectedItem || ((PersonGroups)personGroupListView.SelectedItem).name.Equals("..."))
            {
                if (txtPersonGroup.Text.Trim() != "" && txtPersonGroup.Text != "...")
                {
                    this.IsEnabled = false;
                    personGroupProgressRing.IsActive = true;

                    string response = await PersonGroupCmds.AddPersonGroups(txtPersonGroup.Text.ToLower().Replace(' ', '_'),
                                                                            txtPersonGroup.Text,
                                                                            txtPersonGroupContext.Text);

                    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);
        }
Beispiel #2
0
 private async void appBarTrainButton_Click(object sender, Windows.UI.Xaml.RoutedEventArgs e)
 {
     ProgressRingSettingsPage.IsActive = true;
     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();
     }
     ProgressRingSettingsPage.IsActive = false;
 }
        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;
        }
Beispiel #4
0
        private async void appBarStatusButton_Click(object sender, Windows.UI.Xaml.RoutedEventArgs e)
        {
            ProgressRingSettingsPage.IsActive = true;
            if (null != globals.gPersonGroupSelected && globals.gPersonGroupSelected.name.Equals("...") == false)
            {
                string response = await PersonGroupCmds.StatusPersonGroups(globals.gPersonGroupSelected.personGroupId);

                if (!response.Equals(""))
                {
                    MessageDialog dialog = new MessageDialog(response, "Training Status");
                    await dialog.ShowAsync();
                }
            }
            else
            {
                MessageDialog dialog = new MessageDialog("Select a PersonGroup to check training status for", "Status Error");
                await dialog.ShowAsync();
            }
            ProgressRingSettingsPage.IsActive = false;
        }
        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);

                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 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,
                                                                           txtPersonGroupContext.Text);

                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);
        }
Beispiel #7
0
        private async void FaceQuery(StorageFile file)
        {
            CloudBlockBlob blob         = null;
            string         blobFileName = null;

            if (null != file)
            {
                txtResponse.Text = "";
                progressRingMainPage.IsActive = true;
                BitmapImage         bitmapImage = new BitmapImage();
                IRandomAccessStream fileStream  = await file.OpenAsync(FileAccessMode.Read);

                bitmapImage.SetSource(fileStream);
                CapturedPhoto.Source = bitmapImage;
                CapturedPhoto.Tag    = file.Path;

                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)
                    {
                        txtResponse.Text = "Sorry, I don't know.";
                    }
                    else
                    {
                        txtResponse.Text = string.Join(", ", names.ToArray());
                    }
                }
                else
                {
                    string responseBody = await response.Content.ReadAsStringAsync();

                    globals.ShowJsonErrorPopup(responseBody);
                }

                await blob.DeleteAsync();

                progressRingMainPage.IsActive = false;
            }
        }