public IEnumerable <MrzInfo> InsertMrzInfo(MrzInfo mrzInfo) { mrzInfo.CreatedDate = DateTime.Now; _dbContext.Add(mrzInfo); Save(); return(_dbContext.MrzInfos.ToList()); }
public async Task <IActionResult> Post(IFormFile file) { List <string> restURL = new List <string>(); #region SavingFile _logger.LogInfo("Uploading file success - Started"); var filePath = string.Empty; var strActualFileName = Path.GetFileNameWithoutExtension(file.FileName); var fileExt = Path.GetExtension(file.FileName); var appendString = DateTime.Now.ToString("yyyyddmmHHssmmm"); string strUniquename = strActualFileName + "_" + appendString + "" + fileExt; var uploads = @"C:/AzaKawSampleKYC/KYCUploads"; if (!Directory.Exists(uploads)) { _logger.LogInfo("Creating Upload Directory - Start"); Directory.CreateDirectory(uploads); _logger.LogInfo("Creating Upload Directory - Done"); } if (file.Length > 0) { filePath = Path.Combine(uploads, strUniquename); using (var fileStream = new FileStream(filePath, FileMode.Create)) { await file.CopyToAsync(fileStream); } } strActualFileName = strActualFileName + "" + fileExt; _logger.LogInfo("Uploading file success - Done"); #endregion #region ReadingMRZWithAbbyOCR _logger.LogInfo("Reading MRZ Inforation with Abby Cloud OCR - Started"); if (System.IO.File.Exists(@filePath)) { using (var ocrClient = OCRHelper.GetOcrClientWithRetryPolicy()) { restURL = await OCRHelper.ProcessImageAsync(ocrClient, @filePath); //new List<string>() { "https://ocrsdk.blob.core.windows.net/files/8ebe4855-1071-4ed0-95b6-de2334536a85.result?sv=2012-02-12&se=2019-11-02T21%3A00%3A00Z&sr=b&si=downloadResults&sig=VFoM9QfONhmpc4GjokEIEDDtIIDd9fRDY8t%2Bkvdu%2Fuo%3D" }; //await OCRHelper.ProcessImageAsync(ocrClient, @filePath); } } else { _logger.LogWarn("Could not find the uploaded file"); throw new ArgumentException($"Some thing went wrong, Please contact administrator (view logs)"); } _logger.LogInfo("Reading MRZ Inforation with Abby Cloud OCR - Done"); #endregion #region ReadingMRZOutput _logger.LogInfo("Reading MRZ Resulted Output - Start"); DataSet ds = new DataSet(); WebRequest request = WebRequest.Create(restURL[0].ToString()); Encoding encoding = Encoding.GetEncoding("iso-8859-1"); WebRequest requestXML = WebRequest.Create(restURL[0].ToString()); request.Method = "GET"; using (var response = (System.Net.HttpWebResponse)request.GetResponse()) { // get correct charset and encoding from the server's header Encoding encodingXML; try { encodingXML = Encoding.GetEncoding(response.CharacterSet); } catch { encodingXML = Encoding.UTF8; } using (var rdr = new StreamReader(response.GetResponseStream(), encoding)) { ds.ReadXml(rdr); } } MrzInfo objMRZ = OCRHelper.DeserializeMRZInfo(ds.Tables[1]); objMRZ.CustomerId = int.Parse(User.Claims.FirstOrDefault().Value); objMRZ.FileName = strActualFileName; objMRZ.FileNameUnique = strUniquename; _logger.LogInfo("Reading MRZ Resulted Output - Done"); #endregion #region KYCVerification _logger.LogInfo("Verifying User KYC Details with Trulioo - Start"); //Example Username: JoeNapoli_API_Demo, Example Password: 05uZuPRCyPi!6 bool isKYCVerified = await IsKYCVerified(); _logger.LogInfo("Verifying User KYC Details with Trulioo - End"); #endregion #region SavingMRZInfo _logger.LogInfo("Saving MRZ Info - Start"); objMRZ.isKYCVerified = isKYCVerified; objMRZ.AdditionalInfo = JsonConvert.SerializeObject(objMRZ); _uploadRepository.InsertMrzInfo(objMRZ); var allMRzInfo = _uploadRepository.GetMrzInfos(); _logger.LogInfo("Saving MRZ Info - End"); #endregion return(Ok(allMRzInfo)); }
public static MrzInfo DeserializeMRZInfo(DataTable dtMRZ) { var retList = new MrzInfo(); for (int i = 0; i < dtMRZ.Rows.Count; i++) { var row = dtMRZ.Rows[i]; switch (row["type"]) { case "MRZType": retList.MrzType = row["value"].ToString(); break; case "MrzType": retList.MrzType = row["value"].ToString(); break; case "Line1": retList.Line1 = row["value"].ToString(); break; case "Line2": retList.Line2 = row["value"].ToString(); break; case "Checksum": retList.Checksum = row["value"].ToString(); break; case "ChecksumVerified": retList.ChecksumVerified = row["value"].ToString(); break; case "DocumentType": retList.DocumentType = row["value"].ToString(); break; case "DocumentSubtype": retList.DocumentSubtype = row["value"].ToString(); break; case "IssuingCountry": retList.IssuingCountry = row["value"].ToString(); break; case "DocumentNumber": retList.DocumentNumber = row["value"].ToString(); break; case "DocumentNumberVerified": retList.DocumentNumberVerified = row["value"].ToString(); break; case "DocumentNumberCheck": retList.DocumentNumberCheck = row["value"].ToString(); break; case "Nationality": retList.Nationality = row["value"].ToString(); break; case "BirthDate": retList.BirthDate = row["value"].ToString(); break; case "BirthDateVerified": retList.BirthDateVerified = row["value"].ToString(); break; case "BirthDateCheck": retList.BirthDateCheck = row["value"].ToString(); break; case "Sex": retList.Sex = row["value"].ToString(); break; case "ExpiryDate": retList.ExpiryDate = row["value"].ToString(); break; case "ExpiryDateVerified": retList.ExpiryDateVerified = row["value"].ToString(); break; case "ExpiryDateCheck": retList.ExpiryDateCheck = row["value"].ToString(); break; } } return(retList); }