Esempio n. 1
0
        private void Alterar_Click(object sender, EventArgs e)
        {
            if (Atualizar.Text == "Atualizar")
            {
                var checados = DtgChecked(dtgAndamento);
                if (checados.Count == 0)
                {
                    return;
                }
                var frmTipoCom = new frmSelecionarMeioComunicacao(0);
                frmTipoCom.ShowDialog(this);
                if (!frmTipoCom.Sucesso)
                {
                    return;
                }
                var tipoCom = frmTipoCom.TipoComunicacao;
                if (string.IsNullOrWhiteSpace(tipoCom))
                {
                    return;
                }


                foreach (var item in checados)
                {
                    var crg   = Convert.ToInt32(item.Cells[2].Value);
                    var nTrat = Convert.ToInt32(item.Cells[4].Value);

                    if (tipoCom == "ONLINE")
                    {
                        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(true, 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);
                            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, nTrat);
                        frmPendrive.ShowDialog(this);
                        var arquivo = frmPendrive.Arquivo;

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

                        var bytes = File.ReadAllBytes(arquivo);
                        if (!bytes.Any())
                        {
                            ErrorHandler.ThrowNew(0, "Arquivo inválido!");
                            goto Fim;
                        }
                        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(true, secagem);

                        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:
                    Activate();
                    CarregaCiclos();
                }
            }
            else
            {
                var checados = DtgChecked(dtgFinalizados);
                if (checados.Count > 0)
                {
                    foreach (var item in checados)
                    {
                        var ciclo = CicloDAO.buscaCiclo(Convert.ToInt32(item.Cells[2].Value),
                                                        Convert.ToInt32(item.Cells[1].Value));
                        var novoCiclo = new NovoCiclo(true, Convert.ToInt32(item.Cells[4].Value), ciclo,
                                                      Convert.ToInt32(item.Cells[2].Value) - 1, false);
                        novoCiclo.ShowDialog(this);
                    }
                    CarregaCiclos();
                }
                else
                {
                    MessageBox.Show("Não há nenhum ciclo selecionado!", "Atenção", MessageBoxButtons.OK,
                                    MessageBoxIcon.Information);
                }
            }
        }
Esempio n. 2
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();
        }