コード例 #1
0
        /*
         * Dispara a consulta ao banco em um Thread separado para não travar a tela do usuario enquanto busca as informações
         */
        public void DataBase(string numero = null)
        {
            _valid = false;



            _ = Task.Run(() =>
            {
                if (_candidatoDAO == null)
                {
                    _candidatoDAO = new CandidatoDAO(new SerializadorJSON());
                }

                if (numero != null && numero != "00")
                {
                    object result = _candidatoDAO.Buscar(numero);

                    if (result.GetType() == typeof(Candidato))
                    {
                        this.BeginInvoke(new MethodInvoker(() =>
                        {
                            Candidato r = (Candidato)result;

                            lblN1.Text = r.Numero.Substring(0, 1);

                            lblN2.Text = r.Numero.Substring(1, 1);

                            lblNome.Text = r.Nome.ToUpper();

                            this.lblNome.Location = new Point(
                                Convert.ToInt32((this.pnlFotoContainer.Width / 2) - (this.lblNome.Width / 2)), this.lblNome.Location.Y
                                );

                            string pathImageDefault = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "userInit.png");

                            string fotoCandidato = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $"DB\\Candidatos\\Fotos\\{r.Foto}");

                            if (File.Exists(fotoCandidato))
                            {
                                ptbFoto.Load(fotoCandidato);
                            }
                            else
                            {
                                Reset(new object(), new EventArgs());

                                MessageBox.Show("Não foi possivel carregar os dados do candidato");

                                return;
                            }

                            _valid = true;
                        }));
                    }
                    else
                    {
                        MessageBox.Show("Candidato não existe");
                    }
                }
            });
        }