private async void OnCaptureClick(object sender, RoutedEventArgs e)
        {
            IsButtonsEnabled(false);
            PidData captureData = await ApiService.CaptureRetina();

            if (captureData != null && captureData.Data != null)
            {
                String content = "Iris Data Captured \n\n";
                content     += "=========================================\n\n";
                content     += $"Score: {captureData.Resp.QScore}\n";
                content     += "-- Data-- \n";
                content     += captureData.Data;
                InfoBox.Text = content;

                if (MessageBox.Show("Iris Captured") == MessageBoxResult.OK)
                {
                    IsButtonsEnabled(true);
                }
            }
            else
            {
                String content = "Iris Data Capturing Failed \n\n";
                content     += "=========================================\n\n";
                content     += $"Score: 0\n";
                content     += "-- Data-- \n";
                content     += "----------------------------";
                InfoBox.Text = content;

                if (MessageBox.Show("Iris Capturing Failed") == MessageBoxResult.OK)
                {
                    IsButtonsEnabled(true);
                }
            }
        }
Esempio n. 2
0
        public string Generate2(string institutionUrl, string recordType, string accessionNumber)
        {
            try
            {
                var pidData = new PidData
                {
                    InstitutionUrl  = institutionUrl,
                    RecordType      = recordType,
                    AccessionNumber = accessionNumber
                };

                var ser = new DataContractJsonSerializer(typeof(PidData));
                var ms  = new MemoryStream();
                ser.WriteObject(ms, pidData);

                ms.Position = 0;
                var sr = new StreamReader(ms);

                Trace.WriteLine(DateTime.Now + "-> START Generate2 pidData = " + sr.ReadToEnd());
                Trace.WriteLine(DateTime.Now + "-> RETURN pid = " + pidData.Pid);
                Trace.WriteLine(DateTime.Now + "-> END Generate2");

                return(pidData.Pid);
            }
            catch (Exception err)
            {
                Trace.WriteLine(DateTime.Now + "-> ERROR: " + err.Message);
                Trace.WriteLine(DateTime.Now + "-> END Generate2");
                return(null);
            }
        }
Esempio n. 3
0
        public PidData Lookup(string pid)
        {
            try
            {
                Trace.WriteLine(DateTime.Now + "-> START Lookup pid=" + pid);
                if (string.IsNullOrEmpty(pid))
                {
                    return(null);
                }

                var parts = pid.Split('_');


                PidData pData = null;
                if (parts.Count() > 2)
                {
                    pData = new PidData
                    {
                        InstitutionUrl  = parts[0],
                        RecordType      = parts[1],
                        AccessionNumber = parts[2]
                    };
                }
                Trace.WriteLine(DateTime.Now + "-> END Lookup");
                return(pData);
            }
            catch (Exception err)
            {
                Trace.WriteLine(DateTime.Now + "-> ERROR: " + err.Message);
                Trace.WriteLine(DateTime.Now + "-> END Lookup");
                return(null);
            }
        }
Esempio n. 4
0
        public string Generate(PidData pd)
        {
            try
            {
                var ser = new DataContractJsonSerializer(typeof(PidData));
                var ms  = new MemoryStream();
                ser.WriteObject(ms, pd);

                ms.Position = 0;
                var sr = new StreamReader(ms);

                Trace.WriteLine(DateTime.Now + "-> START Generate pidData = " + sr.ReadToEnd());
                Trace.WriteLine(DateTime.Now + "-> RETURN pid = " + pd.Pid);
                Trace.WriteLine(DateTime.Now + "-> END Generate");
                return(pd.Pid);
            }
            catch (Exception err)
            {
                Trace.WriteLine(DateTime.Now + "-> ERROR: " + err.Message);
                Trace.WriteLine(DateTime.Now + "-> END Generate");
                return(null);
            }
        }
Esempio n. 5
0
        public static async Task <PidData> CaptureRetina()
        {
            var client = new RestClient
            {
                BaseUrl = new Uri(scannerUrl),
            };

            var request = new RestRequest
            {
                Method   = Method.POST,
                Resource = "capture",
                UseDefaultCredentials = true
            };

            // Attach Request Body
            String body = "<PidOptions ver=\"1.0\"><Opts fCount=\"\" fType=\"\" iCount=\"1\" iType=\"0\" pCount=\"\" pType=\"\"";

            body += " format=\"0\" pidVer=\"2.0\" timeout=\"20000\" otp=\"\" wadh=\"\" posh=\"UNKNOWN\" env=\"S\"/>";
            body += "<CustOpts><Param name=\"enable_preview\" value=\"yes\" /></CustOpts></PidOptions>";
            request.AddParameter("text/xml", body, ParameterType.RequestBody);

            PidData captureData = null;

            try
            {
                IRestResponse <PidData> response = await client.ExecuteTaskAsync <PidData>(request);

                captureData = response.Data;
            }
            catch (Exception ex)
            {
                logger.Error(ex);
                return(null);
            }

            return(captureData);
        }
Esempio n. 6
0
 public IActionResult CaptureAadharPay(AEPSInput input)
 {
     try
     {
         var           sessionUtility = new SessionUtility();
         var           pidData        = new PidData();
         XmlSerializer serializer     = new XmlSerializer(typeof(PidData));
         using (TextReader reader = new StringReader(input.PidData))
         {
             pidData = (PidData)serializer.Deserialize(reader);
         }
         var captureReq = new IciciCaptureInternalResponse
         {
             ci          = pidData.Skey.Ci,
             dc          = pidData.DeviceInfo.Dc,
             dpID        = pidData.DeviceInfo.DpId,
             errCode     = pidData.Resp.ErrCode,
             errInfo     = pidData.Resp.ErrInfo,
             fCount      = pidData.Resp.FCount,
             fType       = pidData.Resp.FType,
             hmac        = pidData.Hmac,
             iCount      = "0",
             iType       = "0",
             mc          = pidData.DeviceInfo.Mc,
             mi          = pidData.DeviceInfo.Mi,
             nmPoints    = pidData.Resp.NmPoints,
             pCount      = "0",
             Piddata     = pidData.Data.Text,
             PidDatatype = pidData.Data.Type,
             pType       = "0",
             qScore      = pidData.Resp.QScore,
             rdsID       = pidData.DeviceInfo.RdsId,
             rdsVer      = pidData.DeviceInfo.RdsVer,
             sessionKey  = pidData.Skey.Text,
         };
         var allReqInput = new DetailsAepReq
         {
             accessModeType        = "",
             adhaarNumber          = input.AadharNumber,
             agentId               = Convert.ToString(sessionUtility.GetStringSession("AEPSAgentID")),
             customerId            = sessionUtility.GetLoginSession().customerId,
             customerNumber        = input.CustomerNumber,
             deviceSerialNumber    = pidData.DeviceInfo.Mi,
             deviceTransactionId   = "",
             iciciAepsCaptureRes   = captureReq,
             indicatorforUID       = 0,
             ipAddress             = "176.9.24.146",
             latitude              = "26.125321647834",
             longitude             = "78.09278884562441",
             merchantTransactionId = GetOrderID(),
             nbin              = input.BankName,
             paymentType       = "B",
             requestRemarks    = "Aadhar Pay",
             serviceChannelId  = 2,
             transactionAmount = Convert.ToInt32(input.Amount),
             transactionType   = "MS",
             virtualId         = string.Empty
         };
         string errorMessage = string.Empty;
         var    response     = new CallService().PostResponse <AEPSResponse>("puticiciAepsMiniStatement", allReqInput, ref errorMessage);
         if (string.IsNullOrEmpty(errorMessage))
         {
             var response1 = new resAEPSTransaction();
             response1.AadhaarNumber       = input.AadharNumber;
             response1.Amount              = Convert.ToDecimal(input.Amount);
             response1.ClientTransactionId = allReqInput.merchantTransactionId;
             response1.AEPSModeType        = "Aadhar Pay";
             response1.MobileNumber        = input.CustomerNumber;
             return(PartialView("AckView", response1));
         }
         else
         {
             var response1 = new resAEPSTransaction();
             response1.AadhaarNumber       = input.AadharNumber;
             response1.Amount              = Convert.ToDecimal(input.Amount);
             response1.ClientTransactionId = allReqInput.merchantTransactionId;
             response1.AEPSModeType        = "Mini Statement Web";
             response1.MobileNumber        = input.CustomerNumber;
             return(PartialView("AckView", response1));
         }
     }
     catch (Exception)
     {
     }
     return(PartialView("AckView"));
 }
Esempio n. 7
0
 public IActionResult CaptureBalanceEnquiry(AEPSInput input)
 {
     try
     {
         input.AadharNumber = input.AadharNumber.Replace("-", "").ToString();
         var           sessionUtility = new SessionUtility();
         var           pidData        = new PidData();
         XmlSerializer serializer     = new XmlSerializer(typeof(PidData));
         using (TextReader reader = new StringReader(input.PidData))
         {
             pidData = (PidData)serializer.Deserialize(reader);
         }
         if (pidData.Resp.ErrCode != "0")
         {
             return(Json(new { success = false, errorMessage = pidData.Resp.ErrInfo }));
         }
         var captureReq = new IciciCaptureInternalResponse {
             ci          = pidData.Skey.Ci,
             dc          = pidData.DeviceInfo.Dc,
             dpID        = pidData.DeviceInfo.DpId,
             errCode     = pidData.Resp.ErrCode,
             errInfo     = pidData.Resp.ErrInfo,
             fCount      = pidData.Resp.FCount,
             fType       = pidData.Resp.FType,
             hmac        = pidData.Hmac,
             iCount      = "0",
             iType       = "0",
             mc          = pidData.DeviceInfo.Mc,
             mi          = pidData.DeviceInfo.Mi,
             nmPoints    = pidData.Resp.NmPoints,
             pCount      = "0",
             Piddata     = pidData.Data.Text,
             PidDatatype = pidData.Data.Type,
             pType       = "0",
             qScore      = pidData.Resp.QScore,
             rdsID       = pidData.DeviceInfo.RdsId,
             rdsVer      = pidData.DeviceInfo.RdsVer,
             sessionKey  = pidData.Skey.Text,
         };
         var allReqInput = new DetailsAepReq {
             accessModeType        = "",
             adhaarNumber          = input.AadharNumber,
             agentId               = Convert.ToString(sessionUtility.GetStringSession("AEPSAgentID")),
             customerId            = sessionUtility.GetLoginSession().customerId,
             customerNumber        = input.CustomerNumber,
             deviceSerialNumber    = pidData.DeviceInfo.Mi,
             deviceTransactionId   = "",
             iciciAepsCaptureRes   = captureReq,
             indicatorforUID       = 0,
             ipAddress             = "176.9.24.146",
             latitude              = "26.125321647834",
             longitude             = "78.09278884562441",
             merchantTransactionId = GetOrderID(),
             nbin              = input.BankName,
             paymentType       = "B",
             requestRemarks    = "Balance Enquiry Web",
             serviceChannelId  = 2,
             transactionAmount = 0,
             transactionType   = "BE",
             virtualId         = string.Empty
         };
         var    sting        = JsonConvert.SerializeObject(allReqInput);
         string errorMessage = string.Empty;
         var    response     = new CallService().PostResponse <AEPSResponse>("puticiciAepsBalanceEnq", allReqInput, ref errorMessage);
         if (string.IsNullOrEmpty(errorMessage))
         {
             var response1 = new resAEPSTransaction();
             response1.AadhaarNumber        = "XXXXXXXXX" + input.AadharNumber.Substring(input.AadharNumber.ToString().Length - 4, 4);;
             response1.Amount               = Convert.ToDecimal(input.Amount);
             response1.ClientTransactionId  = allReqInput.merchantTransactionId;
             response1.TransactionReference = response.data.fpTransactionId;
             response1.AEPSModeType         = "Balance Enquiry";
             response1.MobileNumber         = input.CustomerNumber;
             response1.BalanceAmount        = Convert.ToDecimal(response.data.balanceAmount);
             response1.Status               = 1;
             response1.BankReferenceNumber  = input.BankName;
             response1.BankResponseMessage  = response.data.transactionStatus;
             response1.ResponseMessage      = "Successfully retrived";
             return(PartialView("AckView", response1));
         }
         else
         {
             var response1 = new resAEPSTransaction();
             response1.AadhaarNumber       = input.AadharNumber;
             response1.Amount              = Convert.ToDecimal(input.Amount);
             response1.ClientTransactionId = allReqInput.merchantTransactionId;
             response1.AEPSModeType        = "Balance Enquiry";
             response1.MobileNumber        = input.CustomerNumber;
             response1.BalanceAmount       = 0;
             response1.Status              = 0;
             response1.ResponseMessage     = errorMessage;
             return(PartialView("AckView", response1));
         }
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex.Message);
     }
     return(PartialView("AckView"));
 }
        public void Tick()
        {
            TryUpdatePIDToPorts();


            var startDataAtThisTime = DateTime.Now - timespanToKeepNetworkSamples;

            foreach (var kvp in pidRequestToLastTime)
            {
                var pid  = kvp.Key;
                var time = kvp.Value;

                PidData data;
                pidToData.TryGetValue(pid, out data);

                if (time + timespanToClosePIDPortsWithNoRequests > DateTime.Now)
                {
                    // to watch

                    ushort[]      ports = null;
                    List <ushort> portsList;
                    if (pidToPorts.TryGetValue(pid, out portsList))
                    {
                        ports = portsList.ToArray();
                    }


                    if (data == null)
                    {
                        var process = TimeCachedGetProcessByPid.Singleton.GetProcessForPid(pid);
                        if (process != null) // be sure the process is running
                        {
                            Console.WriteLine("Creating ports listener for pid:" + pid);
                            var statistics = GetCapturePortsStatistics();
                            statistics.CaptureThesePorts(ports);

                            data = new PidData()
                            {
                                lastBytesSentPerSecond = 0, statistics = statistics
                            };
                            pidToData[pid] = data;
                        }
                    }
                    else
                    {
                        data.statistics.ClampData(startDataAtThisTime);
                        data.lastBytesSentPerSecond = (long)Math.Round(data.statistics.GetAverageOfReceviedBytes() / timespanToKeepNetworkSamples.TotalSeconds);
                        data.statistics.CaptureThesePorts(ports);
                    }
                }
                else
                {
                    // to not watch

                    if (data != null)
                    {
                        Console.WriteLine("Destroying ports listener for pid:" + pid);

                        StopCapturePortsStatistics(data.statistics);
                        pidToData.TryRemove(pid, out data);
                    }
                }
            }
        }