public async Task <IEnumerable <Registration> > GetAll()
        {
            var faceRegistrationApi = new FaceRegistrationApi(this._EndPointUrl);
            var registrationResult  = await faceRegistrationApi.FaceRegistrationGetAllGetWithHttpInfoAsync();

            if (registrationResult.StatusCode != System.Net.HttpStatusCode.OK)
            {
                return(null);
            }

            return(registrationResult.Data);
        }
        public async Task Remove(Guid id)
        {
            var faceRegistrationApi = new FaceRegistrationApi(this._EndPointUrl);

            try
            {
                var detectResult = await faceRegistrationApi.FaceRegistrationRemovePostWithHttpInfoAsync(id);

                if (detectResult.StatusCode != System.Net.HttpStatusCode.OK)
                {
                    return;
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }

            return;
        }
Esempio n. 3
0
 public FaceRegistrationApiTests()
 {
     instance = new FaceRegistrationApi();
 }
        public async Task <string> Register(RegistrationViewModel registrationViewModel, byte[] image)
        {
            var faceDetectionApi    = new FaceDetectionApi(this._EndPointUrl);
            var faceEncodingApi     = new FaceEncodingApi(this._EndPointUrl);
            var faceRegistrationApi = new FaceRegistrationApi(this._EndPointUrl);

            try
            {
                var target       = new Client.Model.Image(image);
                var detectResult = await faceDetectionApi.FaceDetectionLocationsPostWithHttpInfoAsync(target);

                if (detectResult.StatusCode != System.Net.HttpStatusCode.OK)
                {
                    return("Failed to invoke service");
                }

                if (detectResult.Data.Count == 0)
                {
                    return("Failed to detect face");
                }

                if (detectResult.Data.Count != 1)
                {
                    return("Detect multiple faces");
                }

                var area = detectResult.Data.First();

                await using var memoryStream = new MemoryStream(image);
                using var bitmap             = Image.FromStream(memoryStream);
                var x      = area.Left;
                var y      = area.Top;
                var width  = area.Right - area.Left;
                var height = area.Right - area.Left;
                using var cropped = new Bitmap(width, height, PixelFormat.Format24bppRgb);
                using var g       = Graphics.FromImage(cropped);
                g.DrawImage(bitmap, new Rectangle(0, 0, width, height), new Rectangle(x, y, width, height), GraphicsUnit.Pixel);

                await using var croppedMemoryStream = new MemoryStream();
                cropped.Save(croppedMemoryStream, ImageFormat.Png);
                target = new Client.Model.Image(croppedMemoryStream.ToArray());
                var encodingResult = await faceEncodingApi.FaceEncodingEncodingPostWithHttpInfoAsync(target);

                if (encodingResult.StatusCode != System.Net.HttpStatusCode.OK)
                {
                    return("Failed to invoke service");
                }

                var registration = new Registration
                                   (
                    new Demographics(registrationViewModel.Id,
                                     registrationViewModel.FirstName,
                                     registrationViewModel.LastName,
                                     DateTime.UtcNow),
                    new Encoding(encodingResult.Data.Data),
                    new Client.Model.Image(croppedMemoryStream.ToArray())
                                   );

                var registrationResult = await faceRegistrationApi.FaceRegistrationRegisterPostWithHttpInfoAsync(registration);

                if (registrationResult.StatusCode != System.Net.HttpStatusCode.OK)
                {
                    return("Failed to register");
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }

            return(null);
        }