public static string CheckFTPConfigVersion()
        {
            string sVersion = string.Empty;

            try
            {
                Mobile.ConfigData data = Mobile.configData;
                using (SftpClient sftp = new SftpClient(data.ftpDownload_Host, data.ftpDownload_Port, data.ftpDownload_User, data.ftpDownload_Pass))
                {
                    sftp.Connect();

                    foreach (SftpFile file in sftp.ListDirectory(data.ftpDownload_Path))
                    {
                        if (file.Name.Contains(FIL_VER))
                        {
                            sVersion = file.Name.Substring(0, file.Name.Length - 4); // delete ".ver"
                            break;
                        }
                    }
                    sftp.Disconnect();
                    if (string.IsNullOrEmpty(sVersion))
                    {
                        return("Version_0");
                    }
                    return(sVersion);
                }
            }
            catch (Exception e)
            {
                return(null);
            }
        }
        public static bool DownloadConfigFiles(out string sfileCert)
        {
            bool ok = true;

            sfileCert = String.Empty;
            try
            {
                Mobile.ConfigData data = Mobile.configData;
                using (SftpClient sftp = new SftpClient(data.ftpDownload_Host, data.ftpDownload_Port, data.ftpDownload_User, data.ftpDownload_Pass))
                {
                    sftp.Connect();

                    // List all posible files in the documents directory
                    // Check if file's lastwritetime is the lastest
                    List <SftpFile> ftp_array_files = new List <SftpFile>();

                    // Remote FTP File directory
                    //bool isCertificate;
                    string configPath = Mobile.ConfigPath;

                    foreach (SftpFile file in sftp.ListDirectory(data.ftpDownload_Path))
                    {
                        string name = file.Name;
                        if (name.ToLower().Contains(XML_CER))
                        {
                            sfileCert = name.ToLower();
                        }

                        if (name.Contains(XML_CER) || //name.Contains(FIL_VER) ||
                            (name.Contains(XML_EXT) && CheckConfigFile(name.ToLower())))
                        {
                            string sfile = Path.Combine(configPath, name.ToLower());
                            if (File.Exists(sfile))
                            {
                                File.Delete(sfile);
                            }
                            using (Stream stream = File.OpenWrite(sfile))  // keep in low case
                            {
                                sftp.DownloadFile(Path.Combine(data.ftpDownload_Path, name), stream);
                            }
                        }
                    }

                    sftp.Disconnect();
                }
            }
            catch (Exception e)
            {
                ok = false;
            }

            Console.WriteLine("Download config.files from FTP: " + ((ok) ? "OK" : "NO"));

            return(ok);
        }