Exemplo n.º 1
0
        public async Task <string> CreatePersonAsync(string personGroupId, string personName, string personDescription)
        {
            using (HttpClient client = new HttpClient())
            {
                client.DefaultRequestHeaders.Add(_ocpApimSubscriptionKey, _subscriptionKey);
                string uri = $"{_uriBase}/persongroups/{personGroupId}/persons";
                CreatePersonRequest body = new CreatePersonRequest()
                {
                    Name     = personName,
                    UserData = personDescription
                };
                string              bodyText    = JsonConvert.SerializeObject(body);
                StringContent       httpContent = new StringContent(bodyText, Encoding.UTF8, "application/json");
                HttpResponseMessage response    = await client.PostAsync(uri, httpContent);

                if (response.IsSuccessStatusCode)
                {
                    string content = await response.Content.ReadAsStringAsync();

                    CreatePersonResponse result = JsonConvert.DeserializeObject <CreatePersonResponse>(content);
                    return(result.PersonId);
                }
                throw CreateHttpException(await response.Content.ReadAsStringAsync());
            }
        }
 public CreatePersonResponse CreatePerson(CreatePersonRequest request)
 {
     CreatePersonResponse response = new CreatePersonResponse();
     try
     {
         PersonService service = new PersonService(_personRepository);
         service.AddPerson(request.Person);
         response.Success = true;
     }
     catch (Exception ex)
     {
         response.Message = "Something went wrong: " + ex.ToString();
         response.Success = false;
     }
     
     return response;
 }
Exemplo n.º 3
0
        public async Task SuccessFulRegister()
        {
            #region Assume
            string dataUri  = System.IO.File.ReadAllText(@"./TestData/Base64Image.txt");
            string personId = "a75e036d-48fa-42a6-85ca-dd2bb0d9db11";
            string faceId   = "bd02056c-d0e7-4b6e-adef-0383ba343aff";

            var Body = new RegisterRequest()
            {
                DataUri  = dataUri,
                Email    = "*****@*****.**",
                FullName = "Richard"
            };

            var createPerson = new CreatePerson()
            {
                name     = "*****@*****.**",
                userData = "Richard"
            };


            var DetectedFaces = new List <DetectedFace>()
            {
                new DetectedFace()
                {
                    faceId = faceId
                }
            };

            var CreateResponsePerson = new CreatePersonResponse()
            {
                personId = personId
            };
            #endregion

            #region Mock
            var formatter = new Mock <IFormatter>();
            formatter
            .Setup(m => m.DataUriToByteArray(It.IsAny <string>()))
            .Returns(new byte[0]);

            var cogniativeService = new Mock <ICogniativeService>();

            cogniativeService
            .Setup(m => m.DetectFaceRequest(It.IsAny <byte[]>()))
            .Returns(Task.FromResult(DetectedFaces));

            cogniativeService
            .Setup(m => m.CreatePerson(It.IsAny <string>(), It.IsAny <CreatePerson>()))
            .Returns(Task.FromResult(CreateResponsePerson));

            cogniativeService
            .Setup(m => m.AddFace(It.IsAny <string>(), It.IsAny <byte[]>()))
            .Returns(Task.CompletedTask);

            cogniativeService
            .Setup(m => m.TrainPersonGroup())
            .Returns(Task.CompletedTask);

            ILogger <Register> logger = new Mock <ILogger <Register> >().Object;
            var controller            = new Register(formatter.Object, cogniativeService.Object);

            var request = new DefaultHttpRequest(new DefaultHttpContext())
            {
                Body = new MemoryStream(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(Body)))
            };
            #endregion

            #region Act
            var actionResult = await controller.Run(request, logger);

            var returnResult = actionResult as OkObjectResult;
            var resultData   = returnResult?.Value as CreatePerson;
            #endregion

            #region Assert
            Assert.AreEqual(createPerson.name, resultData.name);
            Assert.AreEqual(createPerson.userData, resultData.userData);
            #endregion
        }