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); }); }