private void ExcluirParque_Click(object sender, RoutedEventArgs e)
        {
            int index = this.dataGridParqueEolico.SelectedIndex;

            if (index == -1)
            {
                MessageBox.Show("Por favor, selecione um parque eólico.");
            }
            else
            {
                try
                {
                    if (MessageBox.Show("Tem certeza que deseja remover o parque eólico selecionado? Atenção, sua exclusão pode implicar na exclusão dos dados já importados associados a este parque.", Constants.CONFIRMATION_CAPTION, MessageBoxButton.YesNo) == MessageBoxResult.Yes)
                    {
                        ParqueEolico parqueSelecionado = (ParqueEolico)this.dataGridParqueEolico.SelectedItem;
                        FactoryController.getInstance().ParqueEolicoController.Delete(parqueSelecionado);
                        this.listaParquesEolicos.Remove((ParqueEolico)this.dataGridParqueEolico.SelectedItem);

                        MessageBox.Show("Parque eólico removido com sucesso.");
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }
        public VisualizarPrevisoes()
        {
            try
            {
                InitializeComponent();

                this.cmbBoxParquesEolicos.ItemsSource = FactoryController.getInstance().ParqueEolicoController.getAll();
            }
            catch (Exception e)
            {
                this.txtMessage.Text = Constants.ERROR_OPEN_CONNECTION;
            }
        }
Beispiel #3
0
        public ImportacaoPrevEOL()
        {
            try
            {
                InitializeComponent();

                this.listaParquesEolicos = FactoryController.getInstance().ParqueEolicoController.getAll();
                this.LoadFiles();
            }
            catch (Exception e)
            {
                this.ShowInfoMessage(e.Message);
            }
        }
        private void UpdateDatagridRowsAndColumns(bool verTodosOsAtributos)
        {
            if (this.cmbBoxParquesEolicos.SelectedItem != null)
            {
                ParqueEolico parqueEolico = (ParqueEolico)this.cmbBoxParquesEolicos.SelectedItem;
                String       intervalo    = ((ComboBoxItem)this.cmbBoxIntervalo.SelectedItem).Tag.ToString();

                BackgroundWorker worker = new BackgroundWorker();

                worker.DoWork += (o, ea) =>
                {
                    try
                    {
                        List <ParqueEolicoImportacaoPrevEOL> listaDadosImportados = FactoryController.getInstance().
                                                                                    PrevEOL_Controller.getDadosImportados(parqueEolico.Id, this.Limit, verTodosOsAtributos,
                                                                                                                          intervalo);

                        this.Dispatcher.BeginInvoke(new Action(() =>
                        {
                            if (listaDadosImportados.Count > 0)
                            {
                                this.ShowDataGrid();
                                this.dataGridVisualizarDados.ItemsSource = listaDadosImportados;
                            }
                            else
                            {
                                this.ShowMessageEmptyData();
                            }
                        }));
                    }
                    catch (Exception e)
                    {
                        this.Dispatcher.BeginInvoke(new Action(() => { this.txtMessage.Text = e.Message; }));
                    }
                };
                worker.RunWorkerCompleted += (param, args) =>
                {
                    if (args.Error != null)
                    {
                        MessageBox.Show(args.Error.ToString());
                    }
                    this.BusyIndicatorCarregando.IsBusy = false;
                };

                BusyIndicatorCarregando.IsBusy = true;
                worker.RunWorkerAsync();
            }
        }
Beispiel #5
0
        public ImportacaoCPTEC()
        {
            try
            {
                InitializeComponent();
                //FactoryDAO.getInstance().CPTECDAO.importOldFile(CAMINHO_FILES + CAMINHO_ENTRADA_IMPORTACAO + @"\SaidaBV.txt", 11);
                //FactoryDAO.getInstance().CPTECDAO.importOldFile(CAMINHO_FILES + CAMINHO_ENTRADA_IMPORTACAO + @"\SaidaCQ.txt", 1);
                //FactoryDAO.getInstance().CPTECDAO.importOldFile(CAMINHO_FILES + CAMINHO_ENTRADA_IMPORTACAO + @"\SaidaEN.txt", 10);

                this.listaParquesEolicos = FactoryController.getInstance().ParqueEolicoController.getAll();
                this.LoadFiles();
            }
            catch (Exception e)
            {
                this.ShowInfoMessage(e.Message);
            }
        }
        private void CadastrarParqueEolico_Executed(object sender, ExecutedRoutedEventArgs e)
        {
            if (this.txtPotenciaMaxima.Text == null || this.txtPotenciaMaxima.Text.Equals("") ||
                this.txtPotenciaMaxima.Text.Equals("0"))
            {
                this.parqueEolico.PotenciaMaxima = 1;
            }
            else
            {
                this.parqueEolico.PotenciaMaxima = Double.Parse(this.txtPotenciaMaxima.Text);
            }

            if (tipo == EnumParqueEolicoFormType.CADASTRAR)
            {
                try
                {
                    FactoryController.getInstance().ParqueEolicoController.cadastrar(this.parqueEolico);
                    //FactoryController.getInstance().PrevisorController.montarEstruturaParaPrevisao();
                    MessageBox.Show("Parque eólico cadastrado com sucesso.");

                    this.ClearAllFields();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
            else if (tipo == EnumParqueEolicoFormType.ALTERAR)
            {
                try
                {
                    FactoryController.getInstance().ParqueEolicoController.atualizar(this.parqueEolico);
                    MessageBox.Show("Parque eólico atualizado com sucesso.");

                    this.ClearAllFields();

                    Main.NavigateTo(EnumNavigateTo.PARQUE_EOLICO_SELECT, null);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
            e.Handled = true;
        }
Beispiel #7
0
        private void carregarParquesEolicos()
        {
            if (((ComboBoxItem)cmbBoxTipo.SelectedItem).Tag.Equals("PP"))
            {
                this.ListaParquesEolicos = new ObservableCollection <ParqueEolico>(FactoryController.getInstance().ParqueEolicoController.getParquesCalibrados("PP"));
            }
            else
            {
                this.ListaParquesEolicos = new ObservableCollection <ParqueEolico>(FactoryController.getInstance().ParqueEolicoController.getParquesCalibrados("TR"));
            }

            this.lstViewParquesEolicos.ItemsSource = this.ListaParquesEolicos;

            this.ListaParquesEolicosSelecionados = new ObservableCollection <ParqueEolico>();
            this.lstViewParquesEolicosSelecionados.ItemsSource = this.ListaParquesEolicosSelecionados;

            Util.Util.parquesPrevistos = this.ListaParquesEolicosSelecionados;
        }
        public ParqueEolicoSelect()
        {
            InitializeComponent();

            var worker = new BackgroundWorker();

            worker.DoWork += (sender, args) =>
            {
                try
                {
                    this.listaParquesEolicos =
                        new ObservableCollection <ParqueEolico>(FactoryController.getInstance().ParqueEolicoController.getAll());

                    this.Dispatcher.Invoke(new Action(() =>
                    {
                        if (this.listaParquesEolicos.Count > 0)
                        {
                            this.ShowParquesEolicos();
                        }
                        else
                        {
                            this.ShowInfoMessage("Ainda não existe nenhum parque eólico cadastrado no banco de dados até o presente momento.");
                        }

                        this.dataGridParqueEolico.ItemsSource = listaParquesEolicos;
                    }));
                }
                catch (Exception e)
                {
                    this.Dispatcher.Invoke(new Action(() => { this.ShowInfoMessage(e.Message); }));
                }
            };

            worker.RunWorkerCompleted += (sender, args) =>
            {
                if (args.Error != null)
                {
                    MessageBox.Show(args.Error.ToString());
                }
                this.BusyIndicatorCarregando.IsBusy = false;
            };

            worker.RunWorkerAsync();
        }
        private void carregarParquesEolicos()
        {
            if (((ComboBoxItem)cmbBoxIntervalo.SelectedItem).Tag.Equals(Util.Util.DEZ_MINUTOS))
            {
                this.ListaParquesEolicos = new ObservableCollection <ParqueEolico>(FactoryController.getInstance().ParqueEolicoController.getAll_LEFT("TR"));
            }
            else
            {
                if (((ComboBoxItem)cmbBoxTipo.SelectedItem).Tag.Equals("PP"))
                {
                    this.ListaParquesEolicos = new ObservableCollection <ParqueEolico>(FactoryController.getInstance().ParqueEolicoController.getAll_LEFT("PP"));
                }
                else
                {
                    this.ListaParquesEolicos = new ObservableCollection <ParqueEolico>(FactoryController.getInstance().ParqueEolicoController.getAll_LEFT("VP"));
                }
            }
            this.lstViewParquesEolicos.ItemsSource = this.ListaParquesEolicos;

            this.ListaParquesEolicosSelecionados = new ObservableCollection <ParqueEolico>();
            this.lstViewParquesEolicosSelecionados.ItemsSource = this.ListaParquesEolicosSelecionados;
        }
        private void LoadTreeView()
        {
            List <EntradaVentoPotencia> dados = FactoryController.getInstance().PrevisorController.GetInputPrevisaoVentoPotencia();

            for (int i = 0; i < dados.Count; i++)
            {
                TreeViewItem item = new TreeViewItem();
                item.Tag = dados[i];

                CheckBox chkBox = new CheckBox();
                chkBox.Checked   += chkBox_Checked;
                chkBox.Unchecked += chkBox_Unchecked;
                chkBox.Content    = dados[i].ParqueEolico.Nome;
                item.Header       = chkBox;
                item.Margin       = new Thickness(5);
                item.ItemsSource  = new string[]
                {
                    dados[i].Dia + "/" + dados[i].Mes + "/" + dados[i].Ano
                };

                this.TreeViewParquesEolicos.Items.Add(item);
            }
        }
Beispiel #11
0
        private void btnExecutarPrevisor_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                int qtdParquesSelecionados = this.ListaParquesEolicosSelecionados.Count;
                if (qtdParquesSelecionados > 0)
                {
                    string           tipoSelecionado = ((ComboBoxItem)this.cmbBoxTipo.SelectedItem).Tag.ToString();
                    BackgroundWorker worker          = new BackgroundWorker();

                    worker.DoWork += (o, ea) =>
                    {
                        try
                        {
                            int progressoPorAquivo = 100 / qtdParquesSelecionados;
                            for (int i = 0; i < this.ListaParquesEolicosSelecionados.Count; i++)
                            {
                                this.Dispatcher.Invoke(new Action(() =>
                                {
                                    this.txtProgressValue.Text = "Executando a previsão para o parque: " +
                                                                 this.ListaParquesEolicosSelecionados[i].Nome + " (" + (i + 1) + "/" + qtdParquesSelecionados + ").";
                                }));

                                FactoryController.getInstance().PrevisorController.realizarPrevisao
                                    (this.ListaParquesEolicosSelecionados[i], tipoSelecionado);

                                this.Dispatcher.Invoke(new Action(() =>
                                {
                                    this.processBar.Value += progressoPorAquivo;
                                }));
                            }

                            this.Dispatcher.Invoke(new Action(() => { this.feedbackMessage.Visibility = Visibility.Visible; }));
                        }
                        catch (Exception ex)
                        {
                            this.Dispatcher.Invoke(new Action(() => { this.ShowInfoMessage(ex.Message); }));
                        }
                    };

                    worker.RunWorkerCompleted += (param, args) =>
                    {
                        if (args.Error != null)
                        {
                            System.Windows.Forms.MessageBox.Show(args.Error.ToString());
                        }
                        this.Dispatcher.Invoke(new Action(() =>
                        {
                            this.gridPaternProgressBar.Visibility = Visibility.Collapsed;
                            this.GridProgressBar.Visibility       = Visibility.Collapsed;
                        }));
                    };

                    this.Dispatcher.Invoke(new Action(() =>
                    {
                        this.gridPaternProgressBar.Visibility = Visibility.Visible;
                        this.GridProgressBar.Visibility       = Visibility.Visible;
                    }));

                    worker.RunWorkerAsync();
                }
                else
                {
                    System.Windows.Forms.MessageBox.Show("Por favor, selecione um ou mais parques eólicos.", Constants.WARNNING_CAPTION);
                }
            }
            catch (Exception ex)
            {
                System.Windows.Forms.MessageBox.Show(ex.Message);
            }
        }
Beispiel #12
0
        private void ImportCPTEC_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                this.feedbackMessage.Visibility = Visibility.Hidden;

                if (files.Length > 0)
                {
                    int qtdArquivos         = files.Length;
                    BackgroundWorker worker = new BackgroundWorker();

                    worker.DoWork += (o, ea) =>
                    {
                        try
                        {
                            int progressoPorAquivo = 100 / files.Length;
                            int count = 0;
                            foreach (FileInfo file in this.files)
                            {
                                count++;

                                this.Dispatcher.Invoke(new Action(() => { this.txtProgressValue.Text = "Importando arquivo " + count + "/" + qtdArquivos + "."; }));
                                for (int i = 0; i < this.listaParquesEolicos.Count; i++)
                                {
                                    string sigla = this.listaParquesEolicos[i].SiglaCPTEC;
                                    if (file.Name.IndexOf(sigla, StringComparison.OrdinalIgnoreCase) != -1)
                                    {
                                        FactoryController.getInstance().CPTEC_Controller.importarArquivoNovo(file.FullName, this.listaParquesEolicos[i].Id);
                                        file.CopyTo(CAMINHO_FILES + CAMINHO_SAIDA_IMPORTACAO + "\\" + file.Name, true);
                                        File.Delete(file.FullName);
                                        break;
                                    }
                                }

                                this.Dispatcher.Invoke(new Action(() =>
                                {
                                    this.processBar.Value += progressoPorAquivo;
                                    this.LoadFiles();
                                }));
                            }
                            this.Dispatcher.Invoke(new Action(() => { this.feedbackMessage.Visibility = Visibility.Visible; }));
                        }
                        catch (Exception ex)
                        {
                            this.Dispatcher.Invoke(new Action(() => { this.ShowInfoMessage(ex.Message); }));
                        }
                    };

                    worker.RunWorkerCompleted += (param, args) =>
                    {
                        if (args.Error != null)
                        {
                            MessageBox.Show(args.Error.ToString());
                        }
                        this.Dispatcher.Invoke(new Action(() =>
                        {
                            HideProgressBar();
                        }));
                    };

                    this.Dispatcher.Invoke(new Action(() =>
                    {
                        ShowProgressBar();
                    }));

                    worker.RunWorkerAsync();
                }
            }
            catch (Exception ex)
            {
                this.ShowInfoMessage(ex.Message);
            }
        }
        private void GerarArquivosTreinamentoVentoPotencia()
        {
            try
            {
                this.feedbackMessage.Visibility = Visibility.Hidden;

                string strDataInicial = this.datePickerDataInicial.Text;
                string strDataFinal   = this.datePickerDataFinal.Text;

                if (strDataInicial.Equals("") || strDataFinal.Equals(""))
                {
                    MessageBox.Show("Preencha o período desejado para fazer a calibragem.", Constants.WARNNING_CAPTION);
                }
                else
                {
                    int qtdParquesSelecionados = this.ListaParquesEolicosSelecionados.Count;
                    if (qtdParquesSelecionados > 0)
                    {
                        DateTime dataInicial = DateTime.Parse(strDataInicial);
                        DateTime dataFinal   = DateTime.Parse(strDataFinal);

                        if (dataFinal < dataInicial)
                        {
                            MessageBox.Show("Desculpe, mas a data inicial tem que ser menor que a data final.", Constants.WARNNING_CAPTION);
                        }
                        else
                        {
                            BackgroundWorker worker = new BackgroundWorker();

                            String intervalo = ((ComboBoxItem)this.cmbBoxIntervalo.SelectedItem).Tag.ToString();
                            this.processBar.Value = 0;
                            worker.DoWork        += (o, ea) =>
                            {
                                try
                                {
                                    int progressoPorAquivo = 100 / qtdParquesSelecionados;
                                    for (int i = 0; i < qtdParquesSelecionados; i++)
                                    {
                                        this.Dispatcher.Invoke(new Action(() =>
                                        {
                                            this.txtProgressValue.Text = "Calibrando " +
                                                                         this.ListaParquesEolicosSelecionados[i].Nome + " (" + (i + 1) + "/" + qtdParquesSelecionados + ").";
                                        }));
                                        FactoryController.getInstance().CalibradorController.gerarArquivoTreinamentoVentoPotencia(this.ListaParquesEolicosSelecionados[i],
                                                                                                                                  dataInicial, dataFinal, intervalo);

                                        FactoryController.getInstance().CalibradorController.calibrarVentoPotencia(this.ListaParquesEolicosSelecionados[i]);
                                        this.ListaParquesEolicosSelecionados[i].Calibracao.FoiCalibrado = 1;
                                        this.ListaParquesEolicosSelecionados[i].Calibracao.Data         = DateTime.Now;

                                        this.Dispatcher.Invoke(new Action(() =>
                                        {
                                            this.processBar.Value += progressoPorAquivo;
                                        }));
                                    }

                                    this.Dispatcher.Invoke(new Action(() => { this.feedbackMessage.Visibility = Visibility.Visible; }));
                                }
                                catch (Exception ex)
                                {
                                    this.Dispatcher.Invoke(new Action(() => { this.ShowInfoMessage(ex.Message); }));
                                }
                            };

                            worker.RunWorkerCompleted += (param, args) =>
                            {
                                if (args.Error != null)
                                {
                                    MessageBox.Show(args.Error.ToString());
                                }
                                this.Dispatcher.Invoke(new Action(() =>
                                {
                                    this.gridPaternProgressBar.Visibility = Visibility.Collapsed;
                                    this.GridProgressBar.Visibility       = Visibility.Collapsed;
                                }));
                            };

                            this.Dispatcher.Invoke(new Action(() =>
                            {
                                this.gridPaternProgressBar.Visibility = Visibility.Visible;
                                this.GridProgressBar.Visibility       = Visibility.Visible;
                            }));

                            worker.RunWorkerAsync();
                        }
                    }
                    else
                    {
                        MessageBox.Show("Por favor, selecione um ou mais parques eólicos.", Constants.WARNNING_CAPTION);
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        private void PreverVentoPotencia_Click(object sender, RoutedEventArgs e)
        {
            int qtdParquesSelecionados = this.parquesSelecionados.Count;

            if (qtdParquesSelecionados > 0)
            {
                BackgroundWorker worker = new BackgroundWorker();

                worker.DoWork += (o, ea) =>
                {
                    try
                    {
                        int progressoPorAquivo = 100 / qtdParquesSelecionados;
                        for (int i = 0; i < qtdParquesSelecionados; i++)
                        {
                            this.Dispatcher.Invoke(new Action(() =>
                            {
                                this.txtProgressValue.Text = "Executando a previsão para o parque: " +
                                                             this.parquesSelecionados[i].ParqueEolico.Nome + " (" + (i + 1) + "/" + qtdParquesSelecionados + ").";
                            }));

                            FactoryController.getInstance().PrevisorController.PreverVentoPotencia(this.parquesSelecionados[i]);

                            this.Dispatcher.Invoke(new Action(() =>
                            {
                                this.processBar.Value += progressoPorAquivo;
                            }));
                        }

                        this.Dispatcher.Invoke(new Action(() => { this.feedbackMessage.Visibility = Visibility.Visible; }));
                    }
                    catch (Exception ex)
                    {
                        this.Dispatcher.Invoke(new Action(() => { this.ShowInfoMessage(ex.Message); }));
                    }
                };

                worker.RunWorkerCompleted += (param, args) =>
                {
                    if (args.Error != null)
                    {
                        MessageBox.Show(args.Error.ToString());
                    }
                    this.Dispatcher.Invoke(new Action(() =>
                    {
                        this.gridPaternProgressBar.Visibility = Visibility.Collapsed;
                        this.GridProgressBar.Visibility       = Visibility.Collapsed;
                    }));
                };

                this.Dispatcher.Invoke(new Action(() =>
                {
                    this.gridPaternProgressBar.Visibility = Visibility.Visible;
                    this.GridProgressBar.Visibility       = Visibility.Visible;
                }));

                worker.RunWorkerAsync();
            }
            else
            {
                MessageBox.Show("Por favor, selecione um ou mais parques eólicos.", Constants.WARNNING_CAPTION);
            }
        }
        private void GerarArquivosTreinamentoPotenciaPotencia()
        {
            try
            {
                this.feedbackMessage.Visibility = Visibility.Hidden;

                string strDataInicial = this.datePickerDataInicial.Text;
                string strDataFinal   = this.datePickerDataFinal.Text;

                if (strDataInicial.Equals("") || strDataFinal.Equals(""))
                {
                    MessageBox.Show("Preencha o período desejado para fazer a calibragem.", Constants.WARNNING_CAPTION);
                }
                else
                {
                    int qtdParquesSelecionados = this.ListaParquesEolicosSelecionados.Count;
                    if (qtdParquesSelecionados > 0)
                    {
                        DateTime dataInicial = DateTime.Parse(strDataInicial);
                        DateTime dataFinal   = DateTime.Parse(strDataFinal);

                        if (dataFinal < dataInicial)
                        {
                            MessageBox.Show("Desculpe, mas a data inicial tem que ser menor que a data final.", Constants.WARNNING_CAPTION);
                        }
                        else
                        {
                            BackgroundWorker worker = new BackgroundWorker();

                            String intervalo = ((ComboBoxItem)this.cmbBoxIntervalo.SelectedItem).Tag.ToString();
                            this.processBar.Value = 0;
                            worker.DoWork        += (o, ea) =>
                            {
                                try
                                {
                                    // Esse número de entradas foi feito pra ser variável, mas terminou
                                    // ficando constante pra essa etapa do projeto;
                                    int numeroDeEntradas = -1;
                                    if (intervalo.Equals(Util.Util.DEZ_MINUTOS))
                                    {
                                        numeroDeEntradas = 18;
                                    }
                                    else if (intervalo.Equals(Util.Util.TRINTA_MINUTOS))
                                    {
                                        numeroDeEntradas = 6;
                                    }
                                    else
                                    {
                                        throw new Exception("Erro! Número de entradas menor que zero!");
                                    }

                                    int progressoPorAquivo = 100 / qtdParquesSelecionados;
                                    for (int i = 0; i < qtdParquesSelecionados; i++)
                                    {
                                        this.Dispatcher.Invoke(new Action(() =>
                                        {
                                            this.txtProgressValue.Text = "Calibrando " +
                                                                         this.ListaParquesEolicosSelecionados[i].Nome + " (" + (i + 1) + "/" + qtdParquesSelecionados + ").";
                                        }));

                                        bool isTempoReal = false;
                                        this.Dispatcher.Invoke(new Action(() =>
                                        {
                                            if (((ComboBoxItem)this.cmbBoxIntervalo.SelectedItem).Tag.Equals(Util.Util.DEZ_MINUTOS))
                                            {
                                                isTempoReal = true;
                                            }
                                        }));

                                        FactoryController.getInstance().CalibradorController.
                                        gerarArquivosTreinamentoPotenciaPotencia(this.ListaParquesEolicosSelecionados[i],
                                                                                 numeroDeEntradas, dataInicial, dataFinal, intervalo, isTempoReal);

                                        FactoryController.getInstance().CalibradorController.CalibrarPotenciaPotencia(this.ListaParquesEolicosSelecionados[i], isTempoReal);
                                        this.ListaParquesEolicosSelecionados[i].Calibracao.FoiCalibrado = 1;
                                        this.ListaParquesEolicosSelecionados[i].Calibracao.Data         = DateTime.Now;

                                        this.Dispatcher.Invoke(new Action(() =>
                                        {
                                            this.processBar.Value += progressoPorAquivo;
                                        }));
                                    }

                                    this.Dispatcher.Invoke(new Action(() => { this.feedbackMessage.Visibility = Visibility.Visible; }));
                                }
                                catch (Exception ex)
                                {
                                    this.Dispatcher.Invoke(new Action(() => { this.ShowInfoMessage(ex.Message); }));
                                }
                            };

                            worker.RunWorkerCompleted += (param, args) =>
                            {
                                if (args.Error != null)
                                {
                                    MessageBox.Show(args.Error.ToString());
                                }
                                this.Dispatcher.Invoke(new Action(() =>
                                {
                                    this.gridPaternProgressBar.Visibility = Visibility.Collapsed;
                                    this.GridProgressBar.Visibility       = Visibility.Collapsed;
                                }));
                            };

                            this.Dispatcher.Invoke(new Action(() =>
                            {
                                this.gridPaternProgressBar.Visibility = Visibility.Visible;
                                this.GridProgressBar.Visibility       = Visibility.Visible;
                            }));

                            worker.RunWorkerAsync();
                        }
                    }
                    else
                    {
                        MessageBox.Show("Por favor, selecione um ou mais parques eólicos.", Constants.WARNNING_CAPTION);
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        private void fillComboBox()
        {
            //Posteriormente, essa lista devera ser preenchida com a leitura do banco de dados
            //ObservableCollection<ParqueEolico> parquesPrevistosLista = new ObservableCollection<ParqueEolico>();
            // parquesPrevistosLista.Add(new ParqueEolico("uecq", "uecq", "uecq", 12, 12, null));
            // parquesPrevistosLista.Add(new ParqueEolico("uebv", "uebv", "uebv", 12, 12, null));
            ObservableCollection <ParqueEolico> parquesPrevistosLista = new ObservableCollection <ParqueEolico>(FactoryController.getInstance().ParqueEolicoController.getParquesPrevistos("TR"));

            Double[] outputData;
            Double[] inputData;
            Double[] inputDataWithSinAndCos;
            Util.Util.matrixDeValoresPrevistos = new Double[parquesPrevistosLista.Count][];
            for (int i = 0; i < parquesPrevistosLista.Count; i++)
            {
                inputDataWithSinAndCos = lerArquivoEntradaPrevisor(parquesPrevistosLista[i]);
                inputData = new Double[inputDataWithSinAndCos.Count() - 2];
                int count = 0;
                for (int j = 0; j < inputDataWithSinAndCos.Count(); j++)
                {
                    if ((j == 0) || (j == 1))
                    {
                        continue;
                    }
                    inputData[count] = inputDataWithSinAndCos[j];
                    count++;
                }

                outputData = lerArquivoSaidaPrevisor(parquesPrevistosLista[i]);
                int      sizeOfGraphData = inputData.Count() + outputData.Count();
                Double[] graphData       = new Double[sizeOfGraphData];
                inputData.CopyTo(graphData, 0);
                outputData.CopyTo(graphData, inputData.Count());

                Util.Util.matrixDeValoresPrevistos[i] = graphData;
            }

            ComboBox cb = this.Controls.Find("cb_grafico", true).FirstOrDefault() as ComboBox;

            cb.AllowDrop = true;

            cb.SelectedIndexChanged += cb_SelectedIndexChanged;

            /*
             * ObservableCollection<ParqueEolico> parquesPrevistos1 = new ObservableCollection<ParqueEolico>();
             * ParqueEolico p = new ParqueEolico("uebv", "uebv", "uebv", 12, 12, null);
             * ParqueEolico p2 = new ParqueEolico("uebv2", "uebv2", "uebv2", 12, 12, null);
             *
             * parquesPrevistos1.Add(p);
             * parquesPrevistos1.Add(p2);
             *
             * Util.Util.parquesPrevistos = parquesPrevistos1;
             */

            Util.Util.parquesPrevistos = parquesPrevistosLista;
            cb.DisplayMember           = "nome";
            cb.DataSource = Util.Util.parquesPrevistos;

            cb.SelectedIndex = 0;
        }
        private void UpdateDatagridItemsSourceCPTEC()
        {
            this.cmbBoxIntervalo.Visibility = Visibility.Hidden;
            if (this.cmbBoxParquesEolicos.SelectedItem != null)
            {
                ParqueEolico parqueEolico = (ParqueEolico)this.cmbBoxParquesEolicos.SelectedItem;

                BackgroundWorker worker = new BackgroundWorker();

                worker.DoWork += (o, ea) =>
                {
                    try
                    {
                        List <ParqueEolicoImportacaoCPTEC> dados = FactoryController.getInstance().
                                                                   CPTEC_Controller.getDadosImportados(parqueEolico.Id, this.Limit);

                        this.Dispatcher.BeginInvoke(new Action(() =>
                        {
                            if (dados.Count > 0)
                            {
                                this.TreeViewDadosCPTEC.Items.Clear();
                            }

                            for (int i = 0; i < dados.Count; i++)
                            {
                                TreeViewItem item = new TreeViewItem();
                                item.Header       = "Dia Previsto: " + (dados[i].diaPrevisto + 1).ToString().PadLeft(2, '0') +
                                                    " | " + dados[i].dia.PadLeft(2, '0') + "/" + dados[i].mes.PadLeft(2, '0') + "/" + dados[i].ano;
                                item.Margin = new Thickness(5);

                                List <string> listVelocidadeDirecao = new List <string>();
                                List <string> listaVelocidades      = dados[i].velocidades;
                                List <string> listaDirecoes         = dados[i].direcoes;
                                for (int k = 0; k < listaVelocidades.Count; k++)
                                {
                                    listVelocidadeDirecao.Add("Hora: " + k.ToString().PadLeft(2, '0') + ": " +
                                                              "| Velocidade: " + dados[i].velocidades[k].PadLeft(5, '0') + " " +
                                                              "| Direção: " + dados[i].direcoes[k]);
                                }

                                item.ItemsSource = listVelocidadeDirecao;

                                this.TreeViewDadosCPTEC.Items.Add(item);
                            }
                            this.ShowTreeView();
                        }));
                    }
                    catch (Exception e)
                    {
                        this.Dispatcher.BeginInvoke(new Action(() => { this.txtMessage.Text = e.Message; }));
                    }
                };
                worker.RunWorkerCompleted += (param, args) =>
                {
                    if (args.Error != null)
                    {
                        MessageBox.Show(args.Error.ToString());
                    }
                    this.BusyIndicatorCarregando.IsBusy = false;
                };

                BusyIndicatorCarregando.IsBusy = true;
                worker.RunWorkerAsync();
            }
        }