//public static async Task<string> DeletePersonFace(string personGroupId, string personId, string persistedFaceId) //{ // string responseBody = null; // string uri = HttpHandler.BaseUri + "/" + personGroupId + "/persons/" + personId + "/persistedFaces/" + persistedFaceId; // HttpResponseMessage response = await HttpHandler.client.DeleteAsync(uri); // if (response.IsSuccessStatusCode) // { // responseBody = await response.Content.ReadAsStringAsync(); // } // else // { // responseBody = await response.Content.ReadAsStringAsync(); // globals.ShowJsonErrorPopup(responseBody); // } // return responseBody; //} public static async Task <FaceData> GetPersonFace(string personGroupId, string personId, string persistedFaceId) { FaceData face = null; string uri = HttpHandler.BaseUri + "/" + personGroupId + "/persons/" + personId + "/persistedFaces/" + persistedFaceId; HttpResponseMessage response = await HttpHandler.client.GetAsync(uri); if (response.IsSuccessStatusCode) { string responseBody = await response.Content.ReadAsStringAsync(); face = JsonConvert.DeserializeObject <FaceData>(responseBody); } else { string responseBody = await response.Content.ReadAsStringAsync(); globals.ShowJsonErrorPopup(responseBody); } return(face); }
private async void AppBarButtonPersonFaceRefresh_Click(object sender, RoutedEventArgs e) { List <ImageChannel> imageChannel = new List <ImageChannel>(); textBlockFace.Text = "Face - " + globals.gPersonSelected.name; if (null != globals.gPersonSelected && globals.gPersonSelected.name.Equals("...") == false) { appbarFaceRefreshButton.IsEnabled = false; personFaceProgressRing.IsActive = true; appbarFaceAddFromCameraButton.IsEnabled = false; appbarFaceAddFromFileButton.IsEnabled = false; //appbarDeleteFaceButton.IsEnabled = false; //blob CloudBlobDirectory userface = HttpHandler.blobContainer.GetDirectoryReference(globals.gPersonGroupSelected.personGroupId + "/" + globals.gPersonSelected.personId); BlobContinuationToken token = null; idImageMaxWidth = personFaceListView.ActualHeight / 4 - 10; var blobcount = 0; do { BlobResultSegment resultSegment = await userface.ListBlobsSegmentedAsync(token); token = resultSegment.ContinuationToken; foreach (IListBlobItem item in resultSegment.Results) { if (item.GetType() == typeof(CloudBlockBlob)) { blobcount++; } } } while (token != null); userIDImages = new Image[blobcount]; var num = 0; 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; 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 idImage = new BitmapImage(new Uri(bloburi)); Image idImageControl = new Image(); idImageControl.Source = idImage; idImageControl.MaxHeight = idImageMaxWidth; userIDImages[num++] = idImageControl; } } } while (token != null); personFaceListView.ItemsSource = userIDImages; imageChannel.Clear(); foreach (string persistedFaceId in globals.gPersonSelected.persistedFaceIds) { FaceData faceInfo = await PersonFaceCmds.GetPersonFace(globals.gPersonGroupSelected.personGroupId, globals.gPersonSelected.personId, persistedFaceId); if (null != faceInfo) { imageChannel.Add(new ImageChannel() { ImagePath = faceInfo.userData, PersistedFaceId = persistedFaceId, FaceInfo = faceInfo }); } } //personFaceListView.ItemsSource = imageChannel; personFaceProgressRing.IsActive = false; appbarFaceAddFromCameraButton.IsEnabled = true; appbarFaceAddFromFileButton.IsEnabled = true; appbarFaceRefreshButton.IsEnabled = true; } else { MessageDialog dialog = new MessageDialog("Person to be selected to find associated Faces", "Refresh Error"); await dialog.ShowAsync(); } }