private async Task GerarRelatorioFluviometrico() { foreach (var item in selectLstBox.Items) { string codigo = item.ToString().Split('-')[0]; Atividade.Text = $"Buscando dados estação {codigo} no Hidroweb-ANA"; var dadosVazaoEstacao = await ServiceANAHelper.DadosFluviometricosVazaoEstacao(Convert.ToInt32(codigo)); var dadosCotasEstacao = await ServiceANAHelper.DadosFluviometricosCotaEstacao(Convert.ToInt32(codigo)); try { if (dadosVazaoEstacao.EhValido && dadosCotasEstacao.EhValido) { Atividade.Text = $"Gerando planilha para estação: {codigo}"; var dadosSerieHistoricaCotas = DataTableParaSerieHistoricaCota(dadosCotasEstacao.Dados); var dadosSerieHistoricaVazao = DataTableParaSerieHistoricaVazao(dadosVazaoEstacao.Dados); var estacao = ListaEstacoesCache.Estacoes.First(c => c.Codigo == Convert.ToInt32(codigo)); _Workbook planilha = ExcelInteropHelper.CriarNovaPlanilhaFluviometrico("item"); planilha = ExcelInteropHelper.CriarAbaEstacaoFluviometrica(planilha, dadosSerieHistoricaVazao, estacao); planilha = ExcelInteropHelper.CriarAbaCotas(planilha, dadosSerieHistoricaCotas, estacao); planilha = ExcelInteropHelper.CriarAbaVazao(planilha, dadosSerieHistoricaVazao, estacao); planilha = ExcelInteropHelper.CriarCotaVazaoDiaria(planilha, dadosSerieHistoricaCotas, dadosSerieHistoricaVazao, estacao); planilha = ExcelInteropHelper.CriarGraficoCotaTempo(planilha, estacao); planilha = ExcelInteropHelper.CriarGraficoCotaVazao(planilha, estacao); Atividade.Text = $"Salvando planilha."; planilha.SaveAs(escolherDiretorio.SelectedPath + $"/{codigo}", Microsoft.Office.Interop.Excel.XlFileFormat.xlOpenXMLWorkbook, null, null, false, false, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, Microsoft.Office.Interop.Excel.XlSaveConflictResolution.xlUserResolution, true, null, null, null); ExcelInteropHelper.FecharAplicacao(planilha); } else { MessageBox.Show($"Não foi possível encontrar dados para {Convert.ToInt32(codigo)}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1); } } catch (Exception ex) { boxBusca.Enabled = true; boxSelecao.Enabled = true; Atividade.Text = string.Empty; MessageBox.Show(ex.Message, "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1); } } }