//public static async Task<List<string>> CheckVisitorFace(string responseString, string personGroupId) public static async Task <List <string> > CheckVisitorFace(string responseString, List <PersonGroups> items) { List <Visitors> visitors = JsonConvert.DeserializeObject <List <Visitors> >(responseString); List <string> faceIds = new List <string>(); List <string> names = new List <string>(); foreach (Visitors visitor in visitors) { faceIds.Add(visitor.faceId); } foreach (var item in items.Skip(1)) { string personGroupId = item.personGroupId; string personGroupName = item.name; FaceQueryPayload jsonPayLoad = new FaceQueryPayload(); jsonPayLoad.personGroupId = personGroupId; jsonPayLoad.faceIds = faceIds; jsonPayLoad.maxNumOfCandidatesReturned = 1; jsonPayLoad.confidenceThreshold = 0.5; string uri = "https://api.projectoxford.ai/face/v1.0/identify"; string jsonString = JsonConvert.SerializeObject(jsonPayLoad); 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(); List <CandidateObject> candidates = JsonConvert.DeserializeObject <List <CandidateObject> >(responseBody); foreach (CandidateObject candidate in candidates) { //get person from personId if (candidate.candidates.Count != 0) { string name = await PersonsCmds.GetPerson(personGroupId, personGroupName, candidate.candidates[0].personId); if (null != name) { names.Add(name); faceIds.Remove(candidate.faceId); } } } } } return(names); }
//private async void AppBarButtonEditPerson_Click(object sender, RoutedEventArgs e) //{ // if (null != personListView.SelectedItem && !((Persons)personListView.SelectedItem).name.Equals("...")) // { // this.IsEnabled = false; // personProgressRing.IsActive = true; // string response = await PersonsCmds.UpdatePerson(globals.gPersonGroupSelected.personGroupId, // globals.gPersonSelected.personId, // txtPerson.Text,null); // personProgressRing.IsActive = false; // this.IsEnabled = true; // } // else // { // MessageDialog dialog = new MessageDialog("Select an existing person and change name", "Update Error"); // await dialog.ShowAsync(); // } // AppBarButtonPersonRefresh_Click(null, null); //} private async void AppBarButtonDeletePerson_Click(object sender, RoutedEventArgs e) { //TODO: Delete all Faces - Blobs - Thumbs if (null != personListView.SelectedItem) { this.IsEnabled = false; personProgressRing.IsActive = true; string response = await PersonsCmds.DeletePerson(globals.gPersonGroupSelected.personGroupId, globals.gPersonSelected.personId); //delete blob CloudBlobDirectory userface = HttpHandler.blobContainer.GetDirectoryReference(globals.gPersonGroupSelected.personGroupId + "/" + globals.gPersonSelected.personId); BlobContinuationToken token = null; do { BlobResultSegment resultSegment = await userface.ListBlobsSegmentedAsync(token); token = resultSegment.ContinuationToken; foreach (IListBlobItem item in resultSegment.Results) { if (item.GetType() == typeof(CloudBlockBlob)) { CloudBlockBlob blob = (CloudBlockBlob)item; await blob.DeleteAsync(); } } } while (token != null); personProgressRing.IsActive = false; this.IsEnabled = true; } else { MessageDialog dialog = new MessageDialog("Select a person group to delete!", "Delete Error"); await dialog.ShowAsync(); } AppBarButtonPersonRefresh_Click(null, null); }
private async void AppBarButtonAddPerson_Click(object sender, RoutedEventArgs e) { if (null == personListView.SelectedItem || ((Persons)personListView.SelectedItem).name.Equals("...")) { if (txtPerson.Text.Trim() != "" && txtPerson.Text != "...") { this.IsEnabled = false; personProgressRing.IsActive = true; string response = await PersonsCmds.CreatePerson(globals.gPersonGroupSelected.personGroupId,// txtPerson.Text.ToLower().Replace(' ', '_'), txtPerson.Text, null); personProgressRing.IsActive = false; this.IsEnabled = true; } else { MessageDialog dialog = new MessageDialog("Add a name for person", "Add Error"); await dialog.ShowAsync(); } } AppBarButtonPersonRefresh_Click(null, null); }
//private void WhitelistedUsersGrid_Loaded(object sender, RoutedEventArgs e) //{ // visitorIDPhotoGridMaxWidth = (personListView.ActualWidth / 3) - 10; //} private async void AppBarButtonPersonRefresh_Click(object sender, RoutedEventArgs e) { textBlockPerson.Text = "People in " + globals.gPersonGroupSelected.name + " Group"; if (null != globals.gPersonGroupSelected && (globals.gPersonGroupSelected.name.Equals("...") == false)) { this.IsEnabled = false; personProgressRing.IsActive = true; appbarPersonNextButton.IsEnabled = false; appbarDeletePersonButton.IsEnabled = false; List <Persons> persons = await PersonsCmds.ListPersonInGroup(globals.gPersonGroupSelected.personGroupId); personListView.ItemsSource = persons; //personListView.DisplayMemberPath = "name"; //personListView.ItemsSource = persons; ////load blob //CloudBlobDirectory personingroup_blob = HttpHandler.blobContainer.GetDirectoryReference(globals.gPersonGroupSelected.name); //// Populates subFolders list with all sub folders within the whitelist folders. //BlobContinuationToken token = null; //do //{ // BlobResultSegment resultSegment = await personingroup_blob.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; // var sas1 = blob.GetSharedAccessSignature(new SharedAccessBlobPolicy() // { // Permissions = SharedAccessBlobPermissions.Read, // SharedAccessExpiryTime = DateTime.UtcNow.AddHours(1),//Set this date/time according to your requirements // }); // var imageuri = string.Format("{0}{1}", blob.Uri, sas1); // string bloburi = new Uri(imageuri).ToString(); // BitmapImage visitorImage = new BitmapImage(new Uri(bloburi)); // PersonImage idImageControl = new PersonImage(); // idImageControl.Image = visitorImage; // string personname = blob.Parent.Prefix.ToString(); // personname = personname.Replace(globals.gPersonGroupSelected.name + "/", ""); // personname = personname.Remove(personname.Length - 1); // idImageControl.name = personname; // idImageControl.MaxHeight = visitorIDPhotoGridMaxWidth; // personListView.ItemsSource = idImageControl; // break; // } // } // } // } //} while (token != null); personProgressRing.IsActive = false; this.IsEnabled = true; } else { MessageDialog dialog = new MessageDialog("No person group selected", "Refresh Error"); await dialog.ShowAsync(); } }