internal UtilityCredentials GetUtilityCreds(string utilityCode, string vendorCode)
        {
            UtilityCredentials creds = new UtilityCredentials();

            try
            {
                string[]  parameters = { vendorCode, utilityCode };
                DataTable dt         = pegpaydbase.ExecuteDataSet("GetUtilityCredentials", parameters).Tables[0];
                if (dt.Rows.Count > 0)
                {
                    creds.UtilityCode      = dt.Rows[0]["UtilityUsername"].ToString();
                    creds.UtilityPassword  = dt.Rows[0]["UtilityPassword"].ToString();
                    creds.Utility          = dt.Rows[0]["UtilityCode"].ToString();
                    creds.BankCode         = dt.Rows[0]["BankCode"].ToString();
                    creds.SecretKey        = dt.Rows[0]["SecretKey"].ToString();
                    creds.Key              = dt.Rows[0]["Key"].ToString();
                    creds.UtilityIsOffline = dt.Rows[0]["IsOffline"].ToString().ToUpper();
                }
                else
                {
                    creds.UtilityCode     = "";
                    creds.UtilityPassword = "";
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(creds);
        }
        public PostResponse validate(NWSCTransaction trans, PostResponse resp, DataTable vendaData)
        {
            PhoneValidator  pv = new PhoneValidator();
            DatabaseHandler dp = new DatabaseHandler();

            resp = null;
            UtilityCredentials creds      = dp.GetUtilityCreds("NWSC", trans.VendorCode);
            string             vendorType = vendaData.Rows[0]["VendorType"].ToString();

            if (!IsValidReversalStatus(trans))
            {
                resp.HandleResponse(trans, resp, "25", "");
                return(resp);
            }

            else if (!IsNumeric(trans.TransactionAmount))
            {
                resp.HandleResponse(trans, resp, "3", "");
                return(resp);
            }
            else if (!IsValidDate(trans.PaymentDate))
            {
                resp.HandleResponse(trans, resp, "4", "");
                return(resp);
            }

            else if (!isValidVendorCredentials(trans.VendorCode, trans.Password, vendaData))
            {
                resp.HandleResponse(trans, resp, "2", "");
                return(resp);
            }
            else if (!isActiveVendor(trans.VendorCode, vendaData))
            {
                resp.HandleResponse(trans, resp, "11", "");
                return(resp);
            }
            else if (!isSignatureValid(trans))
            {
                resp.HandleResponse(trans, resp, "18", "");
                return(resp);
            }
            else if (!pv.PhoneNumbersOk(trans.CustomerTel))
            {
                resp.HandleResponse(trans, resp, "12", "");
                return(resp);
            }
            else if (IsduplicateVendorRef(trans))
            {
                resp.HandleResponse(trans, resp, "20", "");
                return(resp);
            }
            else if (IsduplicateCustPayment(trans))
            {
                resp.HandleResponse(trans, resp, "21", "");
                return(resp);
            }

            else if (!HasOriginalEntry(trans))
            {
                resp.HandleResponse(trans, resp, "24", "");
                return(resp);
            }
            else if (!dp.ReverseAmountsMatch(trans))
            {
                resp.HandleResponse(trans, resp, "26", "");
                return(resp);
            }
            else if (dp.IsChequeBlacklisted(trans))
            {
                resp.HandleResponse(trans, resp, "29", "");
                return(resp);
            }

            else if ((vendorType.Equals("PREPAID")))
            {
                resp.HandleResponse(trans, resp, "29", "NOT ENABLED FOR PREPAID VENDORS");
                return(resp);
            }

            else if (creds.UtilityCode.Equals(""))
            {
                resp.HandleResponse(trans, resp, "29", "");
                return(resp);
            }

            else
            {
                return(resp);
            }
        }