//**********
        //public static string NotifyURA(string PRN, string BankStatus, string Tin, string Amount, string Paid_dt,
        //                              string Value_dt, string Status, string Bank_branch_cd, string Bank_tr_no,
        //                              string Chq_no, string Reason)
        //{
        //    var uraEnc = new UraEncryption();

        //    string pass_Api = Decrypt(MyAPIPass);

        //    string s = uraEnc.EncryptedData(MyAPIPass, x509Cert_ura);
        //    var urapt = new UraPmtServiceSoapClient("UraPmtServiceSoap");
        //    urapt.Open();

        //    var MyTransactionEntity = new TransactionEntity();
        //    var MyTranArray = new URAPmtInterface.TransactionEntity[1];
        //    MyTranArray.Initialize();

        //    MyTransactionEntity.Bank_cd = ConfigurationManager.AppSettings["BANK_SHORT_CODE"];
        //    MyTransactionEntity.Prn = PRN;
        //    MyTransactionEntity.Tin = Tin;
        //    MyTransactionEntity.Amount = Amount;
        //    MyTransactionEntity.Paid_dt = Paid_dt;
        //    MyTransactionEntity.Value_dt = Value_dt;
        //    MyTransactionEntity.Status = Status;
        //    MyTransactionEntity.Bank_branch_cd = Bank_branch_cd;
        //    MyTransactionEntity.Bank_tr_no = Bank_tr_no;
        //    MyTransactionEntity.Chq_no = Chq_no;
        //    MyTransactionEntity.Reason = Reason;

        //    string MyString = MyTransactionEntity.Bank_cd + MyTransactionEntity.Prn + MyTransactionEntity.Tin +
        //                      MyTransactionEntity.Amount + MyTransactionEntity.Paid_dt + MyTransactionEntity.Value_dt +
        //                      MyTransactionEntity.Status + MyTransactionEntity.Bank_branch_cd +
        //                      MyTransactionEntity.Bank_tr_no + MyTransactionEntity.Chq_no + MyTransactionEntity.Reason;


        //    var privateKey = x509Cert_bnk.PrivateKey as RSACryptoServiceProvider;
        //    byte[] buffer = new UnicodeEncoding().GetBytes(MyString);
        //    byte[] hash = new SHA1Managed().ComputeHash(buffer);
        //    if (privateKey != null)
        //    {
        //        byte[] signature = privateKey.SignHash(hash, "SHA1");

        //        //verify the signature
        //        var publicKey = x509Cert_bnk.PublicKey.Key as RSACryptoServiceProvider;
        //        bool verify = publicKey != null && publicKey.VerifyHash(hash, CryptoConfig.MapNameToOID("SHA1"), signature);

        //        MyTransactionEntity.Signature = signature;
        //    }

        //    //Add Transaction Entity to the Array
        //    MyTranArray[0] = MyTransactionEntity;

        // var res = urapt.NotifyUraPayment(MyAPIUserName, s, MyTranArray);

        //    return "";
        //}
        //**********

        //**********
        //static

        public string NotifyURA(string PRN, string BankStatus, string Tin, string Amount, string Paid_dt,
                                string Value_dt, string Status, string Bank_branch_cd, string Bank_tr_no,
                                string Chq_no, string Reason)
        {
            Functions fn = new Functions();
            //Crypto cp = new Crypto();
            string EnctryptionAlgorithm = "rijndael";

            FinpayiSecurity.CryptoFactory CryptographyFactory = new FinpayiSecurity.CryptoFactory();
            FinpayiSecurity.ICrypto       CrypTool            = null;
            //FinpayiSecurity.ICrypto Cryptographer = CryptographyFactory.MakeCryptographer(EnctryptionAlgorith);

            string           Finpayi      = ConfigurationManager.ConnectionStrings["Finpay"].ConnectionString;
            string           Bridgei      = ConfigurationManager.ConnectionStrings["Bridge"].ConnectionString;
            X509Certificate2 x509Cert_ura = new X509Certificate2(HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["URACertificate"]));
            X509Certificate2 x509Cert_bnk = new X509Certificate2(HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["BankCertificate"]), HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["BankCertPass"]));

            string MyAPIUserName = "";
            string MyAPIPass     = "";


            System.Net.ServicePointManager.CertificatePolicy = new MyPolicy();
            URAGateway.UraPmtService     service = new URAGateway.UraPmtService();
            eTaxPmtLibrary.UraEncryption uraEnc  = new eTaxPmtLibrary.UraEncryption();
            string EnctryptionAlgorith           = "rijndael";

            //FinpayiSecurity.CryptoFactory CryptographyFactory = new FinpayiSecurity.CryptoFactory();
            FinpayiSecurity.ICrypto Cryptographer = CryptographyFactory.MakeCryptographer(EnctryptionAlgorith);
            MyAPIPass     = fn.GetFinpayParameter("Select ItemValue from Parameters where ItemKey = 'URAWEBPASS'");
            MyAPIUserName = fn.GetFinpayParameter("Select ItemValue from Parameters where ItemKey = 'URAWEBUSER'");
            string UraPassword = Cryptographer.Decrypt(MyAPIPass);
            string s           = uraEnc.EncryptedData(UraPassword, x509Cert_ura);



            //    var urapt = new UraPmtServiceSoapClient("UraPmtServiceSoap");
            //    urapt.Open();

            var MyTransactionEntity = new URAGateway.TransactionEntity();
            var MyTranArray         = new URAGateway.TransactionEntity[1];

            MyTranArray.Initialize();

            MyTransactionEntity.Bank_cd        = ConfigurationManager.AppSettings["BANK_SHORT_CODE"];
            MyTransactionEntity.Prn            = PRN;
            MyTransactionEntity.Tin            = Tin;
            MyTransactionEntity.Amount         = Amount;
            MyTransactionEntity.Paid_dt        = Paid_dt;
            MyTransactionEntity.Value_dt       = Value_dt;
            MyTransactionEntity.Status         = Status;
            MyTransactionEntity.Bank_branch_cd = Bank_branch_cd;
            MyTransactionEntity.Bank_tr_no     = Bank_tr_no;
            MyTransactionEntity.Chq_no         = Chq_no;
            MyTransactionEntity.Reason         = Reason;

            string MyString = MyTransactionEntity.Bank_cd + MyTransactionEntity.Prn + MyTransactionEntity.Tin +
                              MyTransactionEntity.Amount + MyTransactionEntity.Paid_dt + MyTransactionEntity.Value_dt +
                              MyTransactionEntity.Status + MyTransactionEntity.Bank_branch_cd +
                              MyTransactionEntity.Bank_tr_no + MyTransactionEntity.Chq_no + MyTransactionEntity.Reason;


            var privateKey = x509Cert_bnk.PrivateKey as RSACryptoServiceProvider;

            byte[] buffer = new UnicodeEncoding().GetBytes(MyString);
            byte[] hash   = new SHA1Managed().ComputeHash(buffer);
            if (privateKey != null)
            {
                byte[] signature = privateKey.SignHash(hash, "SHA1");

                //verify the signature
                var  publicKey = x509Cert_bnk.PublicKey.Key as RSACryptoServiceProvider;
                bool verify    = publicKey != null && publicKey.VerifyHash(hash, CryptoConfig.MapNameToOID("SHA1"), signature);

                MyTransactionEntity.Signature = signature;
            }

            //Add Transaction Entity to the Array
            MyTranArray[0] = MyTransactionEntity;

            var res = service.NotifyUraPayment(MyAPIUserName, s, MyTranArray);

            return("");
        }
        //**********
        //public static string NotifyURA(string PRN, string BankStatus, string Tin, string Amount, string Paid_dt,
        //                              string Value_dt, string Status, string Bank_branch_cd, string Bank_tr_no,
        //                              string Chq_no, string Reason)
        //{
        //    var uraEnc = new UraEncryption();

        //    string pass_Api = Decrypt(MyAPIPass);

        //    string s = uraEnc.EncryptedData(MyAPIPass, x509Cert_ura);
        //    var urapt = new UraPmtServiceSoapClient("UraPmtServiceSoap");
        //    urapt.Open();

        //    var MyTransactionEntity = new TransactionEntity();
        //    var MyTranArray = new URAPmtInterface.TransactionEntity[1];
        //    MyTranArray.Initialize();

        //    MyTransactionEntity.Bank_cd = ConfigurationManager.AppSettings["BANK_SHORT_CODE"];
        //    MyTransactionEntity.Prn = PRN;
        //    MyTransactionEntity.Tin = Tin;
        //    MyTransactionEntity.Amount = Amount;
        //    MyTransactionEntity.Paid_dt = Paid_dt;
        //    MyTransactionEntity.Value_dt = Value_dt;
        //    MyTransactionEntity.Status = Status;
        //    MyTransactionEntity.Bank_branch_cd = Bank_branch_cd;
        //    MyTransactionEntity.Bank_tr_no = Bank_tr_no;
        //    MyTransactionEntity.Chq_no = Chq_no;
        //    MyTransactionEntity.Reason = Reason;

        //    string MyString = MyTransactionEntity.Bank_cd + MyTransactionEntity.Prn + MyTransactionEntity.Tin +
        //                      MyTransactionEntity.Amount + MyTransactionEntity.Paid_dt + MyTransactionEntity.Value_dt +
        //                      MyTransactionEntity.Status + MyTransactionEntity.Bank_branch_cd +
        //                      MyTransactionEntity.Bank_tr_no + MyTransactionEntity.Chq_no + MyTransactionEntity.Reason;


        //    var privateKey = x509Cert_bnk.PrivateKey as RSACryptoServiceProvider;
        //    byte[] buffer = new UnicodeEncoding().GetBytes(MyString);
        //    byte[] hash = new SHA1Managed().ComputeHash(buffer);
        //    if (privateKey != null)
        //    {
        //        byte[] signature = privateKey.SignHash(hash, "SHA1");

        //        //verify the signature
        //        var publicKey = x509Cert_bnk.PublicKey.Key as RSACryptoServiceProvider;
        //        bool verify = publicKey != null && publicKey.VerifyHash(hash, CryptoConfig.MapNameToOID("SHA1"), signature);

        //        MyTransactionEntity.Signature = signature;
        //    }

        //    //Add Transaction Entity to the Array
        //    MyTranArray[0] = MyTransactionEntity;

           // var res = urapt.NotifyUraPayment(MyAPIUserName, s, MyTranArray);

        //    return "";
        //}
        //**********

        //**********
        //static 

        public string NotifyURA(string PRN, string BankStatus, string Tin, string Amount, string Paid_dt,
                                      string Value_dt, string Status, string Bank_branch_cd, string Bank_tr_no,
                                   string Chq_no, string Reason)
       {
           Functions fn = new Functions();
           //Crypto cp = new Crypto();
           string EnctryptionAlgorithm = "rijndael";
           FinpayiSecurity.CryptoFactory CryptographyFactory = new FinpayiSecurity.CryptoFactory();
           FinpayiSecurity.ICrypto CrypTool = null;
           //FinpayiSecurity.ICrypto Cryptographer = CryptographyFactory.MakeCryptographer(EnctryptionAlgorith);

           string Finpayi = ConfigurationManager.ConnectionStrings["Finpay"].ConnectionString;
           string Bridgei = ConfigurationManager.ConnectionStrings["Bridge"].ConnectionString;
           X509Certificate2 x509Cert_ura = new X509Certificate2(HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["URACertificate"]));
           X509Certificate2 x509Cert_bnk = new X509Certificate2(HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["BankCertificate"]), HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["BankCertPass"]));

           string MyAPIUserName = "";
           string MyAPIPass = "";


           System.Net.ServicePointManager.CertificatePolicy = new MyPolicy();
           URAGateway.UraPmtService service = new URAGateway.UraPmtService();
           eTaxPmtLibrary.UraEncryption uraEnc = new eTaxPmtLibrary.UraEncryption();
           string EnctryptionAlgorith = "rijndael";
           //FinpayiSecurity.CryptoFactory CryptographyFactory = new FinpayiSecurity.CryptoFactory();
           FinpayiSecurity.ICrypto Cryptographer = CryptographyFactory.MakeCryptographer(EnctryptionAlgorith);
           MyAPIPass = fn.GetFinpayParameter("Select ItemValue from Parameters where ItemKey = 'URAWEBPASS'");
           MyAPIUserName = fn.GetFinpayParameter("Select ItemValue from Parameters where ItemKey = 'URAWEBUSER'");
           string UraPassword = Cryptographer.Decrypt(MyAPIPass);
           string s = uraEnc.EncryptedData(UraPassword, x509Cert_ura);



            
        //    var urapt = new UraPmtServiceSoapClient("UraPmtServiceSoap");
        //    urapt.Open();

          var MyTransactionEntity = new URAGateway.TransactionEntity ();
          var MyTranArray = new URAGateway.TransactionEntity[1];
          MyTranArray.Initialize();

          MyTransactionEntity.Bank_cd = ConfigurationManager.AppSettings["BANK_SHORT_CODE"];
          MyTransactionEntity.Prn = PRN;
          MyTransactionEntity.Tin = Tin;
          MyTransactionEntity.Amount = Amount;
          MyTransactionEntity.Paid_dt = Paid_dt;
          MyTransactionEntity.Value_dt = Value_dt;
          MyTransactionEntity.Status = Status;
          MyTransactionEntity.Bank_branch_cd = Bank_branch_cd;
          MyTransactionEntity.Bank_tr_no = Bank_tr_no;
          MyTransactionEntity.Chq_no = Chq_no;
          MyTransactionEntity.Reason = Reason;

          string MyString = MyTransactionEntity.Bank_cd + MyTransactionEntity.Prn + MyTransactionEntity.Tin +
                            MyTransactionEntity.Amount + MyTransactionEntity.Paid_dt + MyTransactionEntity.Value_dt +
                            MyTransactionEntity.Status + MyTransactionEntity.Bank_branch_cd +
                            MyTransactionEntity.Bank_tr_no + MyTransactionEntity.Chq_no + MyTransactionEntity.Reason;


          var privateKey = x509Cert_bnk.PrivateKey as RSACryptoServiceProvider;
          byte[] buffer = new UnicodeEncoding().GetBytes(MyString);
          byte[] hash = new SHA1Managed().ComputeHash(buffer);
          if (privateKey != null)
          {
              byte[] signature = privateKey.SignHash(hash, "SHA1");

              //verify the signature
              var publicKey = x509Cert_bnk.PublicKey.Key as RSACryptoServiceProvider;
              bool verify = publicKey != null && publicKey.VerifyHash(hash, CryptoConfig.MapNameToOID("SHA1"), signature);

              MyTransactionEntity.Signature = signature;
          }

          //Add Transaction Entity to the Array
          MyTranArray[0] = MyTransactionEntity;

          var res = service.NotifyUraPayment(MyAPIUserName, s, MyTranArray);

          return "";
        }
 /// <remarks/>
 public void NotifyEndOfDayEntityAsync(string loginId, string passWd, string eodFileName, TransactionEntity[] eodEntityArr) {
     this.NotifyEndOfDayEntityAsync(loginId, passWd, eodFileName, eodEntityArr, null);
 }
 /// <remarks/>
 public void NotifyEndOfDayEntityAsync(string loginId, string passWd, string eodFileName, TransactionEntity[] eodEntityArr, object userState) {
     if ((this.NotifyEndOfDayEntityOperationCompleted == null)) {
         this.NotifyEndOfDayEntityOperationCompleted = new System.Threading.SendOrPostCallback(this.OnNotifyEndOfDayEntityOperationCompleted);
     }
     this.InvokeAsync("NotifyEndOfDayEntity", new object[] {
                 loginId,
                 passWd,
                 eodFileName,
                 eodEntityArr}, this.NotifyEndOfDayEntityOperationCompleted, userState);
 }
 public string NotifyEndOfDayEntity(string loginId, string passWd, string eodFileName, TransactionEntity[] eodEntityArr) {
     object[] results = this.Invoke("NotifyEndOfDayEntity", new object[] {
                 loginId,
                 passWd,
                 eodFileName,
                 eodEntityArr});
     return ((string)(results[0]));
 }
 /// <remarks/>
 public void NotifyUraPaymentJavaAsync(string loginId, string passWd, TransactionEntity[] transEntityArr, string language, object userState) {
     if ((this.NotifyUraPaymentJavaOperationCompleted == null)) {
         this.NotifyUraPaymentJavaOperationCompleted = new System.Threading.SendOrPostCallback(this.OnNotifyUraPaymentJavaOperationCompleted);
     }
     this.InvokeAsync("NotifyUraPaymentJava", new object[] {
                 loginId,
                 passWd,
                 transEntityArr,
                 language}, this.NotifyUraPaymentJavaOperationCompleted, userState);
 }
 /// <remarks/>
 public void NotifyUraPaymentJavaAsync(string loginId, string passWd, TransactionEntity[] transEntityArr, string language) {
     this.NotifyUraPaymentJavaAsync(loginId, passWd, transEntityArr, language, null);
 }
 public string[] NotifyUraPaymentJava(string loginId, string passWd, TransactionEntity[] transEntityArr, string language) {
     object[] results = this.Invoke("NotifyUraPaymentJava", new object[] {
                 loginId,
                 passWd,
                 transEntityArr,
                 language});
     return ((string[])(results[0]));
 }
 /// <remarks/>
 public void NotifyUraPaymentAsync(string loginId, string passWd, TransactionEntity[] transEntityArr) {
     this.NotifyUraPaymentAsync(loginId, passWd, transEntityArr, null);
 }