private void ProgressoDaTarefa_ProgressChanged(object sender, ProgressoDaTarefa e) { pgbProgresso.Value = e.Progresso; lblEtapaAtual.Text = e.EtapaAtual; if (e.Progresso < 100) { this.UseWaitCursor = true; FuncaoBotaoProcessamento = BotaoProcessamento.CancelarProcessamento; lblEtapaAtual.BackColor = Color.LightGray; } else { this.UseWaitCursor = false; FuncaoBotaoProcessamento = BotaoProcessamento.IniciarProcessamento; lblEtapaAtual.BackColor = Color.LightGreen; } }
/// <summary> /// Método que inicia processamento do /// </summary> /// <returns></returns> private async Task IniciarProcessamentoAsync(IProgress <ProgressoDaTarefa> pProgresso, CancellationToken pCancelarTarefa) { ProgressoDaTarefa reportarProgresso = new ProgressoDaTarefa(); List <Redirect> redirects = new List <Redirect>(); //Lendo arquivos XML e recuperando URLs reportarProgresso.Progresso = 10; reportarProgresso.EtapaAtual = "Lendo arquivos XML..."; pProgresso.Report(reportarProgresso); List <string> urlsSitemapAntigo = await GerarListaDeUrlsAsync(_caminhoSitemapAntigo, chkRemoverSubdominio.Checked, pCancelarTarefa); List <string> urlsSitemapAtual = await GerarListaDeUrlsAsync(_caminhoSitemapAtual, chkRemoverSubdominio.Checked, pCancelarTarefa); //Removendo ocorrências idênticas entre URLs do site atual e site antigo reportarProgresso.Progresso = 20; reportarProgresso.EtapaAtual = "Removendo ocorrências idênticas..."; pProgresso.Report(reportarProgresso); urlsSitemapAntigo = urlsSitemapAntigo.Except(urlsSitemapAtual).ToList(); //Buscando semelhanças reportarProgresso.Progresso = 30; reportarProgresso.EtapaAtual = "Gerando Redirects..."; pProgresso.Report(reportarProgresso); int qtdRedirectsFeitos = await Task.Run(() => GerarRedirects(urlsSitemapAntigo, urlsSitemapAtual, out redirects, pCancelarTarefa)); MessageBox.Show("Redirects feitos: " + qtdRedirectsFeitos); //Salvando arquivo com redirects reportarProgresso.Progresso = 90; reportarProgresso.EtapaAtual = "Salvando arquivo..."; pProgresso.Report(reportarProgresso); await EscreverArquivoAsync(redirects); //Finalizando operação reportarProgresso.Progresso = 100; reportarProgresso.EtapaAtual = "Redirects gerados com sucesso"; pProgresso.Report(reportarProgresso); }