public async Task <WisTResponse> CheckAsync(LoginInfo userInfo) { WisTResponse response; var detectConfig = _configuration["FaceClassifierPath"]; var recognizeConfig = _configuration["TransistRateCoefficient"]; var rootPath = _hostingEnvironemnt.ContentRootPath; var transistRateCoefficient = double.Parse(recognizeConfig, new NumberFormatInfo { NumberDecimalSeparator = "." }); var pathToHaar = Path.Combine(rootPath, detectConfig); Bitmap image; using (var memoryStream = new MemoryStream()) { await userInfo.Photo.CopyToAsync(memoryStream); image = new Bitmap(Image.FromStream(memoryStream)); } var _prjPath = Directory.GetParent(Directory.GetCurrentDirectory()).FullName; FaceImage userFace; try { userFace = new FaceImage(image, pathToHaar); var recognizer = new Recognizer.Identifier.Recognizer(_labelRepo, transistRateCoefficient); IIdentifier usersId = recognizer.GetIdentity(userFace); if (usersId.IdentifingCode != -1) { response = WisTResponse.Recognized; response.UserName = _labelRepo.Get(usersId).Name; } else { response = WisTResponse.NotRegistered; } } catch (UndetectedFaceException) { response = WisTResponse.NotDetectedFace; } return(response); }