Exemple #1
0
        public async Task <DomainFaceList.AddFaceResult> AddFaceAsync(string faceListId, string url, string userData, string targetFace)
        {
            dynamic body = new JObject();

            body.url = url;
            StringContent queryString = new StringContent(body.ToString(), System.Text.Encoding.UTF8, "application/json");

            using (var client = new HttpClient())
            {
                client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", APIReference.FaceAPIKey);
                var response = await client.PostAsync($"https://{APIReference.FaceAPIZone}.api.cognitive.microsoft.com/face/v1.0/facelists/{faceListId}/persistedFaces?userData={userData}&targetFace={targetFace}", queryString);

                DomainFaceList.AddFaceResult result = null;
                if (response.IsSuccessStatusCode)
                {
                    var json = await response.Content.ReadAsStringAsync();

                    result = JsonConvert.DeserializeObject <DomainFaceList.AddFaceResult>(json);
                }
                else
                {
                    var json = await response.Content.ReadAsStringAsync();

                    NotSuccessfulResponse fex = JsonConvert.DeserializeObject <NotSuccessfulResponse>(json);
                    throw new Exception($"{fex.error.code} - {fex.error.message}");
                }

                return(result);
            }
        }
        public void FindSimilarAsyncTest()
        {
            TimeoutHelper.ThrowExceptionInTimeout(() =>
            {
                List <FindSimilarResult> result = null;
                var identifier = System.Guid.NewGuid().ToString();

                try
                {
                    var creation_result = APIReference.Instance.FaceListInstance.CreateAsync(identifier, identifier, identifier).Result;
                    System.Diagnostics.Trace.Write($"Creation Result: {creation_result}");

                    DomainFaceList.AddFaceResult addface_result = null;
                    if (creation_result)
                    {
                        dynamic jUserData        = new JObject();
                        jUserData.UserDataSample = "User Data Sample";
                        var rUserData            = JsonConvert.SerializeObject(jUserData);

                        addface_result = APIReference.Instance.FaceListInstance.AddFaceAsync(identifier, faceAPISettingsFixture.TestImageUrl, rUserData, string.Empty).Result;

                        if (addface_result != null)
                        {
                            List <DetectResult> detection_result = APIReference.Instance.FaceInstance.DetectAsync(faceAPISettingsFixture.TestImageUrl, "age,gender,headPose,smile,facialHair,glasses,emotion,hair,makeup,occlusion,accessories,blur,exposure,noise", true, true).Result;

                            if (detection_result != null)
                            {
                                result = APIReference.Instance.FaceInstance.FindSimilarAsync(detection_result[0].faceId, identifier, string.Empty, new string[] { }, 10, "matchPerson").Result;
                            }
                        }
                    }
                }
                catch
                {
                    throw;
                }
                finally
                {
                    var deletion_result = APIReference.Instance.FaceListInstance.DeleteAsync(identifier).Result;
                    System.Diagnostics.Trace.Write($"Deletion Result: {deletion_result}");
                }

                Assert.True(result != null);
            });
        }