/// <summary>
 /// Recebe o valor do auto incremento e coloca na propriedade
 /// </summary>
 /// <param name="qs">Objeto da Store Procedure</param>
 protected override bool ReceberAutoIncremento(QuerySelectStoredProcedure qs, DCL_ProtocoloReprocesso entity)
 {
     entity.prp_seq = Convert.ToInt32(qs.Return.Rows[0][0]);
     return(entity.prp_seq > 0);
 }
Example #2
0
        /// <summary>
        /// Colocar um protocolo executado com erro para reprocessar
        /// </summary>
        /// <param name="pro_id">Id do Protocolo</param>
        /// <param name="novoPacote">Novo pacote a ser processado</param>
        /// <param name="versao">Versão do aplicativo que enviou o protocolo</param>
        /// <returns></returns>
        public static bool Reprocessar(Guid pro_id, string novoPacote, string versao)
        {
            DCL_ProtocoloReprocessoDAO dao   = new DCL_ProtocoloReprocessoDAO();
            TalkDBTransaction          banco = dao._Banco;

            try
            {
                DCL_Protocolo protocolo = new DCL_Protocolo()
                {
                    pro_id = pro_id
                };
                DCL_ProtocoloReprocesso entity = null;

                DCL_ProtocoloBO.GetEntity(protocolo);

                if (protocolo.IsNew)
                {
                    throw new ProtocoloNãoEncontrado();
                }

                //Verifica se está com status de "Processado com Erro"
                if (protocolo.pro_status == (byte)DCL_ProtocoloBO.eStatus.ProcessadoComErro)
                {
                    entity = new DCL_ProtocoloReprocesso()
                    {
                        pro_id              = protocolo.pro_id,
                        prp_pacote          = protocolo.pro_pacote,
                        prp_status          = protocolo.pro_status,
                        prp_statusObervacao = protocolo.pro_statusObservacao,
                        prp_situacao        = protocolo.pro_situacao,
                        prp_dataCriacao     = DateTime.Now,
                        prp_dataAlteracao   = DateTime.Now
                    };

                    if (!string.IsNullOrEmpty(versao))
                    {
                        protocolo.pro_versaoAplicativo = versao;
                    }

                    protocolo.pro_status           = 1;
                    protocolo.pro_statusObservacao = string.Empty;

                    if (!string.IsNullOrEmpty(novoPacote))
                    {
                        protocolo.pro_pacote = novoPacote;
                    }

                    banco.Open();

                    DCL_ProtocoloReprocessoBO.Save(entity, banco);
                    DCL_ProtocoloBO.Save(protocolo, banco);

                    return(true);
                }
                else
                {
                    throw new ReprocessarProtocoloSemErro();
                }
            }
            catch (Exception err)
            {
                banco.Close(err);
                throw;
            }
            finally
            {
                banco.Close();
            }
        }