コード例 #1
0
        private void Novo_Click(object sender, EventArgs e)
        {
            principal.ParaAtualizacao();
            NovoCiclo novoCiclo = new NovoCiclo();

            novoCiclo.ShowDialog(this);
            CarregaCiclos();
            principal.RetomaAtualizacao();
        }
コード例 #2
0
 private void Ligar_Click(object sender, EventArgs e)
 {
     if (Ligar.Text == "Ligar")
     {
         principal.ParaAtualizacao();
         int         equipamento    = ObterUltimoEquipamento();
         SelectEquip selecionaEquip = new SelectEquip(this, equipamento);
         selecionaEquip.ShowDialog(this);
     }
     else if (Ligar.Text == "Desligar")
     {
         toggleBotaoLigar(false);
         toggleBotoesNavegacao(false);
         para_looping_envios = true;
         Thread.Sleep(2000);
         Ligar.Text        = "Ligar";
         Ligar.Enabled     = true;
         CRGCursor.Enabled = false;
         InfoCRG.Text      = "CRG Nº -- (offline)";
         infoPorta.Text    = "Porta: -- (offline)";
         limpaTela();
         Configura_LEDs(0xFF);
         principal.RetomaAtualizacao();
     }
 }
コード例 #3
0
        //private void RecebeSecagemOnline(IAsyncResult ar)
        //{
        //
        //}


        private void Novo_Click(object sender, EventArgs e)
        {
            principal.ParaAtualizacao();


            var seleciona = new frmSelecionarMeioComunicacao();

            seleciona.ShowDialog(this);
            if (!seleciona.Sucesso)
            {
                goto Fim;
            }
            var tipoCom = seleciona.TipoComunicacao;
            var crg     = seleciona.NumCRG;

            if (string.IsNullOrWhiteSpace(tipoCom))
            {
                goto Fim;
            }

            if (tipoCom == "ONLINE")
            {
                if (crg <= 0)
                {
                    MessageBox.Show("Número do CRG inválido!", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                var func = new funcaoAssincrona(() => SecagensBO.ReceberSecagem(0, crg, ConfiguracaoDAO.retornaPorta()));

                this.Enabled = false;
                frmCarregar  = new Carregar();
                frmCarregar.Show(this);
                var asyncResult = func.BeginInvoke((ar) =>
                {
                }, null);

                while (asyncResult.IsCompleted == false)
                {
                    Application.DoEvents();
                    Thread.Sleep(50);
                }

                frmCarregar.Invoke(new MethodInvoker(() => frmCarregar.Close()));

                var listaRetorno = func.EndInvoke(asyncResult);

                if (listaRetorno == null || listaRetorno.Count == 0)
                {
                    MessageBox.Show("Não foi possível comunicar com o equipamento!", "Erro de comunicação",
                                    MessageBoxButtons.OK, MessageBoxIcon.Error);
                    this.Enabled = true;
                    return;
                }
                var secagem = SecagensBO.DescriptografarSecagem(listaRetorno);

                if (secagem == null)
                {
                    MessageBox.Show("Não foi possível carregar este ciclo!", "Erro", MessageBoxButtons.OK,
                                    MessageBoxIcon.Error);
                    this.Enabled = true;
                    return;
                }
                secagem.ciclo.crg = crg;

                var status = SecagensBO.SalvarSecagem(false, secagem, this);

                if (status.Cancelado)
                {
                    this.Enabled = true;
                    return;
                }

                if (!status.Sucesso)
                {
                    var msgs = string.Empty;
                    foreach (var msg in ErrorHandler.GetAllErrors)
                    {
                        msgs += Environment.NewLine + msg.ErrorMessage;
                    }
                    MessageBox.Show(
                        "Não foi possível salvar o ciclo " + secagem.ciclo.nTrat + "!" + Environment.NewLine +
                        Environment.NewLine + "Detalhes: " + msgs, "Erro", MessageBoxButtons.OK,
                        MessageBoxIcon.Error);
                    ErrorHandler.ClearErrors();
                    this.Enabled = true;
                    return;
                }

                MessageBox.Show(
                    "Ciclo " + secagem.ciclo.nTrat + " " + (status.Salvo ? "salvo" : "atualizado") + " com sucesso!",
                    "Sucesso!", MessageBoxButtons.OK, MessageBoxIcon.Information);

                CarregaCiclos();
                Enabled = true;
                Activate();
            }
            else
            {
                var frmPendrive = new frmPendriveList(crg, -1);
                frmPendrive.ShowDialog(this);
                var arquivo = frmPendrive.Arquivo;
                var ntrat   = frmPendrive.NTrat;
                crg = crg == -1 ? frmPendrive.Crg : crg;

                if (string.IsNullOrWhiteSpace(arquivo) || ntrat == -1 || crg == -1)
                {
                    return;
                }

                var bytes   = File.ReadAllBytes(arquivo);
                var secagem = SecagensBO.DescriptografarSecagem(bytes.ToList(), 1);
                if (secagem == null)
                {
                    var msg = "Não foi possível carregar este ciclo!";
                    if (ErrorHandler.GetLastError != null)
                    {
                        msg += Environment.NewLine + Environment.NewLine + "Detalhes:" + Environment.NewLine +
                               ErrorHandler.GetLastError.ErrorMessage;
                        ErrorHandler.ClearErrors();
                    }
                    MessageBox.Show(msg, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    goto Fim;
                }

                secagem.ciclo.crg = crg;


                var status = SecagensBO.SalvarSecagem(false, secagem);

                if (status.Cancelado)
                {
                    return;
                }

                if (status.Sucesso)
                {
                    MessageBox.Show("Ciclo " + secagem.ciclo.nTrat + " " + (status.Salvo ? "salvo" : "atualizado") +
                                    " com sucesso!", "Sucesso!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    goto Fim;
                }

                var ultimoErro = ErrorHandler.GetLastError;
                if (ultimoErro != null)
                {
                    MessageBox.Show(ultimoErro.ErrorMessage, ultimoErro.Identifier == 0 ? "Erro" : "Informação",
                                    MessageBoxButtons.OK,
                                    ultimoErro.Identifier == 0 ? MessageBoxIcon.Error : MessageBoxIcon.Information);
                    goto Fim;
                }
            }


Fim:
            CarregaCiclos();
            principal.RetomaAtualizacao();
        }