private void UninstallPaymentGateway(PaymentGateWayModuleInfo paymentGateWay, bool deleteModuleFolder, int gatewayID)
    {
        PaymentGatewayInstaller installerClass = new PaymentGatewayInstaller();
        string path = HttpContext.Current.Server.MapPath("~/");

        //checked if directory exist for current Payment Gateway foldername
        string paymentGatewayFolderPath = paymentGateWay.InstalledFolderPath;

        if (!string.IsNullOrEmpty(paymentGatewayFolderPath))
        {
            if (Directory.Exists(paymentGatewayFolderPath))
            {
                //check for valid .sfe file exist or not
                XmlDocument doc = new XmlDocument();
                if (File.Exists(paymentGatewayFolderPath + '\\' + paymentGateWay.ManifestFile))
                {
                    doc.Load(paymentGatewayFolderPath + '\\' + paymentGateWay.ManifestFile);

                    try
                    {
                        if (paymentGateWay.PaymentGatewayTypeID > 0)
                        {
                            //Run script
                            ReadUninstallScriptAndDLLFiles(doc, paymentGatewayFolderPath, installerClass);
                            //Rollback PaymentGatewayTypeID
                            //installerClass.PaymentGatewayRollBack(paymentGateWay.PaymentGatewayTypeID, GetPortalID, GetStoreID);
                            if (deleteModuleFolder == true)
                            {
                                //Delete Payment GateWay's Original Folder
                                installerClass.DeleteTempDirectory(paymentGateWay.InstalledFolderPath);
                            }
                            installhelp.InstallPackage(paymentModule, gatewayID);
                        }
                    }
                    catch (Exception ex)
                    {
                        _exceptions = ex.Message;
                    }
                }
                else
                {
                    if (deleteModuleFolder == true)
                    {
                        //Delete Payment GateWay's Original Folder
                        installerClass.DeleteTempDirectory(paymentGateWay.InstalledFolderPath);
                    }
                    installhelp.InstallPackage(paymentModule, gatewayID);
                }
            }
            else if (!Directory.Exists(paymentGatewayFolderPath))
            {
                installhelp.InstallPackage(paymentModule, gatewayID);
            }
            else
            {
                ShowMessage(SageMessageTitle.Exception.ToString(), SageMessage.GetSageModuleLocalMessageByVertualPath("Modules/AspxCommerce/AspxPaymentGateWayManagement/ModuleLocalText", "PaymentGatewayFolderDoesnotExist"), "", SageMessageType.Error);
            }
        }
    }
 private void RunUninstallScript(string _unistallScriptFile, string paymentGatewayFolderPath, PaymentGatewayInstaller installerClass)
 {
     _exceptions = installerClass.ReadSQLFile(paymentGatewayFolderPath, _unistallScriptFile);
 }
    private void ReadUninstallScriptAndDLLFiles(XmlDocument doc, string paymentGatewayFolderPath, PaymentGatewayInstaller installerClass)
    {
        XmlElement root = doc.DocumentElement;

        if (!String.IsNullOrEmpty(root.ToString()))
        {
            ArrayList   dllFiles            = new ArrayList();
            string      _unistallScriptFile = string.Empty;
            XmlNodeList xnFileList          = doc.SelectNodes("sageframe/folders/folder/files/file");
            if (xnFileList.Count != 0)
            {
                foreach (XmlNode xn in xnFileList)
                {
                    string _fileName = xn["name"].InnerXml;
                    try
                    {
                        #region CheckAlldllFiles
                        if (!String.IsNullOrEmpty(_fileName) && _fileName.Contains(".dll"))
                        {
                            dllFiles.Add(_fileName);
                        }
                        #endregion
                        #region ReadUninstall SQL FileName
                        if (!String.IsNullOrEmpty(_fileName) && _fileName.Contains("Uninstall.SqlDataProvider"))
                        {
                            _unistallScriptFile = _fileName;
                        }
                        #endregion
                    }
                    catch (Exception ex)
                    {
                        _exceptions = ex.Message;
                    }
                }
                if (_unistallScriptFile != "")
                {
                    RunUninstallScript(_unistallScriptFile, paymentGatewayFolderPath, installerClass);
                }
                DeleteAllDllsFromBin(dllFiles, paymentGatewayFolderPath);
            }
        }
    }