Exemplo n.º 1
0
        private async Task GerarRelatorioPluviometrico()
        {
            foreach (var item in selectLstBox.Items)
            {
                string codigo = item.ToString().Split('-')[0];

                Atividade.Text = $"Buscando dados estação {codigo} no Hidroweb-ANA";

                var dadosEstacao = await ServiceANAHelper.DadosPluviometricosEstacao(Convert.ToInt32(codigo));

                try
                {
                    if (dadosEstacao.EhValido)
                    {
                        Atividade.Text = $"Gerando planilha para estação: {codigo}";

                        var dadosSerieHistorica = DataTableParaSerieHistoricaChuvas(dadosEstacao.Dados);
                        var estacao             = ListaEstacoesCache.Estacoes.First(c => c.Codigo == Convert.ToInt32(codigo));

                        _Workbook planilha = ExcelInteropHelper.CriarNovaPlanilhaPluviometrico("item");
                        planilha       = ExcelInteropHelper.CriarAbaEstacao(planilha, dadosSerieHistorica, estacao);
                        planilha       = ExcelInteropHelper.CriarAbaChuvas(planilha, dadosSerieHistorica, estacao);
                        planilha       = ExcelInteropHelper.CriarAbaDiaria(planilha, dadosSerieHistorica, estacao);
                        planilha       = ExcelInteropHelper.CriarAbaResumo(planilha, dadosSerieHistorica, estacao);
                        planilha       = ExcelInteropHelper.CriarAbaResumoDia(planilha, dadosSerieHistorica, estacao);
                        planilha       = ExcelInteropHelper.CriarAbaResumoDiasChuva(planilha, dadosSerieHistorica, estacao);
                        planilha       = ExcelInteropHelper.CriarAbaResumoDiasFalha(planilha, dadosSerieHistorica, 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);
                }
            }
        }