/// <summary> /// Atualização de arquivos /// </summary> private async Task <bool> AtualizarExe() { return(await Task.Run(() => { try { TelaPrincipal.AbaAtualizacao.IsIndeterminateBarra1 = false; var FileLastModified = Ftp.GetFileLasModified(PathExe); if (!FileLastModified.ToString().Equals(ConfiguracaoModel.VersaoArquivo)) { TelaPrincipal.AbaAtualizacao.LabelContent = "Baixando arquivos da atualizaçãos..."; var arquivos = Ftp.Download(PathExe, TelaPrincipal); using (MemoryStream mem = new MemoryStream(arquivos)) using (ZipArchive zipStream = new ZipArchive(mem)) { var filesCount = 1; foreach (ZipArchiveEntry file in zipStream.Entries) { string completeFileName = Path.Combine($@"{ConfiguracaoModel.DiretorioSistema}\Update", file.FullName); string directory = Path.GetDirectoryName(completeFileName); if (!Directory.Exists(directory)) { Directory.CreateDirectory(directory); } if (file.Name != "") { file.ExtractToFile(completeFileName, true); } TelaPrincipal.AbaAtualizacao.LabelContent = "Extraindo arquivo (" + filesCount + "/" + zipStream.Entries.Count.ToString() + ")"; TelaPrincipal.AbaAtualizacao.ProgressoBarra1 = Math.Min((int)((double)filesCount / zipStream.Entries.Count) * 100, 100); //file.ExtractToFile(completeFileName, true); filesCount++; } } } ConfiguracaoModel.VersaoArquivo = FileLastModified.ToString().Trim(); ConfiguracaoModel.ToModel().GravarConfiguracao(); TelaPrincipal.Indicadores.AtualizouExe = true; return true; } catch (Exception e) { log.Error(e.Message); TelaPrincipal.AbaAtualizacao.LabelContent = "Problemas ao atualizar programas."; return false; } })); }
/// <summary> /// Atualização de arquivos /// </summary> private async Task <bool> AtualizarExe() { return(await Task.Run(() => { try { MainWindowViewModel.AbaAtualizar.Status.BarraProgresso.IsIndeterminateBarra1 = false; var RetornoFtp = Ftp.GetFileList(FtpPath); RetornoFtp.ForEach(arquivo => { if (arquivo.EndsWith(".rar", StringComparison.OrdinalIgnoreCase) || arquivo.EndsWith(".zip", StringComparison.OrdinalIgnoreCase)) { var FileLastModified = Ftp.GetFileLasModified(FtpPath + arquivo); if (!FileLastModified.ToString().Equals(ConfiguracaoModel.VersaoArquivo)) { MainWindowViewModel.AbaAtualizar.Status.StatusLabel.LabelContent = "Baixando arquivos da atualizaçãos..."; var arquivos = Ftp.Download(FtpPath + arquivo, MainWindowViewModel); using (MemoryStream mem = new MemoryStream(arquivos)) using (var file = ArchiveFactory.Open(mem)) { var filesCount = 1; file.Entries.ToList().ForEach(entry => { if (!entry.IsDirectory && !entry.Key.Contains("~$")) { string completeFileName = Path.Combine($@"{ConfiguracaoModel.LocalDiretorio}\Update", entry.Key); string directory = Path.GetDirectoryName(completeFileName); if (entry.Key != "") { entry.WriteToDirectory($@"{ConfiguracaoModel.LocalDiretorio}\Update", new ExtractionOptions() { ExtractFullPath = true, Overwrite = true }); } MainWindowViewModel.AbaAtualizar.Status.StatusLabel.LabelContent = "Extraindo arquivo (" + filesCount + "/" + file.Entries.Count().ToString() + ")"; MainWindowViewModel.AbaAtualizar.Status.BarraProgresso.ProgressoBarra1 = ((double)filesCount / file.Entries.Count()) * 100; filesCount++; } }); } } ConfiguracaoModel.VersaoArquivo = FileLastModified.ToString().Trim(); ConfiguracaoModel.ToModel().GravarConfiguracao(); MainWindowViewModel.Indicadores.AtualizouExe = true; } }); return true; } catch (Exception e) { log.Error(e.Message); MainWindowViewModel.AbaAtualizar.Status.StatusLabel.LabelContent = "Problemas ao atualizar programas."; return false; } })); }