//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);
        }
Exemplo n.º 2
0
        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();
            }
        }