/// <summary> /// Inserts new image /// </summary> /// <param name="user"></param> /// <returns>boolean</returns> public async Task <bool> InsertPersonInToGroup(UserModel user) { CreatePersonResult result = await _faceServiceClient.CreatePersonAsync(_groupId, user.Id.ToString()); //Mock error heandling if (result == null) { return(false); } RecognitionUtils recUtils = new RecognitionUtils(); await _faceServiceClient.AddPersonFaceAsync(_groupId, result.PersonId, recUtils.GetStream(user.ImageUri)); await _faceServiceClient.TrainPersonGroupAsync(_groupId); return(true); }
/// <summary> /// Identifies person from an image taken in the app /// </summary> /// <param name="user"></param> /// <returns></returns> public async Task <string> Identify(UserModel user) { string imageUri = user.ImageUri; //Mock error heandling if (imageUri == null) { return(null); } RecognitionUtils recUtils = new RecognitionUtils(); var memoryStream = new MemoryStream(); memoryStream = recUtils.GetStream(imageUri); var faces = await _faceServiceClient.DetectAsync(memoryStream); //Mock error heandling if (faces.Length == 0 || faces == null) { return(null); } var faceIds = faces.Select(face => face.FaceId).ToArray(); var results = await _faceServiceClient.IdentifyAsync(_groupId, faceIds); //Mock error heandling if (results.Length == 0 || results == null || results[0].Candidates.Length == 0 || results[0].Candidates[0] == null) { return(null); } var candidateId = results[0].Candidates[0].PersonId; var person = await _faceServiceClient.GetPersonAsync(_groupId, candidateId); return(person.Name); }
public void GetStream_ShouldReturnExpected() { //Arrange byte[] fakeBytes = new byte[1000]; var fakeWebClientFacttory = A.Fake <ICustomWebClientFactory>(); var fakeWebClient = fakeWebClientFacttory.Create(); A.CallTo(() => fakeWebClient.DownloadData("https://static.tvtropes.org/pmwiki/pub/images/young_joseph_joestar_anime.png")).Returns(fakeBytes); //Act var recognitionUtils = new RecognitionUtils() { CustomWebClient = fakeWebClient }; var result = recognitionUtils.GetStream("https://static.tvtropes.org/pmwiki/pub/images/young_joseph_joestar_anime.png"); //Assert var resultBytes = result.ToArray(); resultBytes.ShouldBe(fakeBytes); A.CallTo(() => fakeWebClient.DownloadData("https://static.tvtropes.org/pmwiki/pub/images/young_joseph_joestar_anime.png")).MustHaveHappenedOnceExactly(); }