private void btAplicar_Click(object sender, EventArgs e)
        {
            try
            {
                for (int i = 1; i < dataGridViewAtualizarFirmware.Rows.Count; i++)
                {
                    if ((null != dataGridViewAtualizarFirmware.Rows[i].Cells[COLUNA_DIRETORIO].Value) && (!String.IsNullOrEmpty(dataGridViewAtualizarFirmware.Rows[i].Cells[COLUNA_DIRETORIO].Value.ToString())))
                    {
                        string origem = @"" + dataGridViewAtualizarFirmware.Rows[i].Cells[COLUNA_DIRETORIO].Value.ToString();
                        // Abrir a origem e verificar se é arquivo da TURBUS
                        Arquivo_FIR af = new Arquivo_FIR();
                        Arquivo_FIR.IdentificacaoProduto produto = af.IdentificarProduto(origem);
                        if (produto.nomeProduto.Contains(Util.Util.NOME_FIRMWARE_TURBUS))
                        {
                            fachada.CopiarFirmwareTurbusParaProgramData(origem);
                        }
                        else
                        {
                            fachada.CopiarFirmwareParaProgramData(origem);
                        }
                    }
                }

                MessageBox.Show(this, rm.GetString("UPDATE_FIRMWARE_UPDATE_SUCCESS"), string.Empty, MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch
            {
                MessageBox.Show(this, rm.GetString("UPDATE_FIRMWARE_UPDATE_ERROR"), rm.GetString("MAIN_MENU_MBOX_OPEN_ERROR_TITLE"), MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        private void dataGridViewAtualizarFirmware_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.ColumnIndex == COLUNA_ELLIPSIS)
            {
                string nomeArquivo = String.Empty;
                if (e.RowIndex == 0)
                {
                    return;
                }
                try
                {
                    OpenFileDialog openFileDialog = new OpenFileDialog();
                    openFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData);
                    openFileDialog.Filter           = rm.GetString("FILTRO_FIRMWARES");
                    if (openFileDialog.ShowDialog(this) == DialogResult.OK)
                    {
                        nomeArquivo = openFileDialog.FileName;
                        Arquivo_FIR.IdentificacaoProduto id = fachada.IdentificarProduto(nomeArquivo);
                        if (id.nomeProduto == (dataGridViewAtualizarFirmware.Rows[e.RowIndex].Cells[COLUNA_PRODUTO].Value as string))
                        {
                            if (id.versao.CompareTo(new Version(dataGridViewAtualizarFirmware.Rows[e.RowIndex].Cells[COLUNA_VERSAO].Value.ToString())) >= 0)
                            {
                                dataGridViewAtualizarFirmware.Rows[e.RowIndex].Cells[COLUNA_DIRETORIO].Value      = nomeArquivo;
                                dataGridViewAtualizarFirmware.Rows[e.RowIndex].Cells[COLUNA_VERSAO_ARQUIVO].Value = id.versao.ToString();
                            }
                            else
                            {
                                MessageBox.Show(this, rm.GetString("UPDATE_FIRMWARE_VERSION_ERROR") + id.versao + ")", rm.GetString("MAIN_MENU_MBOX_OPEN_ERROR_TITLE"), MessageBoxButtons.OK, MessageBoxIcon.Error);
                            }
                        }
                        else if ((id.nomeProduto.Equals(Util.Util.NOME_FIRMWARE_TURBUS)) && (dataGridViewAtualizarFirmware.Rows[e.RowIndex].Cells[COLUNA_PRODUTO].Value as string).Equals(Util.Util.NOME_FIRMWARE_CONTROLADOR))
                        {
                            dataGridViewAtualizarFirmware.Rows[e.RowIndex].Cells[COLUNA_PRODUTO].Value        = id.nomeProduto;
                            dataGridViewAtualizarFirmware.Rows[e.RowIndex].Cells[COLUNA_VERSAO].Value         = id.versao.ToString();
                            dataGridViewAtualizarFirmware.Rows[e.RowIndex].Cells[COLUNA_DIRETORIO].Value      = nomeArquivo;
                            dataGridViewAtualizarFirmware.Rows[e.RowIndex].Cells[COLUNA_VERSAO_ARQUIVO].Value = id.versao.ToString();
                        }
                        else
                        {
                            MessageBox.Show(this, rm.GetString("UPDATE_FIRMWARE_PRODUCT_ERROR") + id.nomeProduto + ")", rm.GetString("MAIN_MENU_MBOX_OPEN_ERROR_TITLE"), MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                }
                catch
                {
                }
            }
            else if (e.ColumnIndex == COLUNA_UPDATES)
            {
                indiceLinhaDownload = e.RowIndex;
                string  produto = dataGridViewAtualizarFirmware.Rows[e.RowIndex].Cells[COLUNA_PRODUTO].Value.ToString();
                Version versao  = new Version(dataGridViewAtualizarFirmware.Rows[e.RowIndex].Cells[COLUNA_VERSAO].Value.ToString());
                string  sw_fw   = (produto == Application.ProductName) ? "SW" : "FW";
                string  familia = versao.Major.ToString();

                string url = fachada.VerificarAtualizarSistemas(familia, produto, sw_fw, versao.ToString());



                string filename = "\\" + produto + "_" + familia + "_" + sw_fw + "_" + versao.ToString().Replace(".", "_");

                if (!String.IsNullOrEmpty(url))
                {
                    dataGridViewAtualizarFirmware.Rows[e.RowIndex].Cells[COLUNA_DIRETORIO].Value = url;
                    Uri uri = new Uri(url);

                    webList[indiceLinhaDownload].DownloadFileAsync(new Uri(url), Fachada.diretorio_downloads + "\\" + filename + Path.GetExtension(uri.PathAndQuery));
                }
                else
                {
                    dataGridViewAtualizarFirmware.Rows[indiceLinhaDownload].Cells[COLUNA_PERCENTUAL].Value = rm.GetString("UPDATE_FIRMWARE_MSG_ATUALIZADO");
                }
            }
        }