Пример #1
0
        /// <summary>
        /// Insere um plano/produto (pelo portal) para o cliente que já tem o cblc
        /// </summary>
        /// <param name="pRequest">Objeto de request InserirProdutosClienteRequest</param>
        /// <returns>Retorna o objeto inserido</returns>
        public InserirProdutosClienteResponse InserirPlanoClienteExistente(InserirProdutosClienteRequest pRequest)
        {
            InserirProdutosClienteResponse lRetorno = new InserirProdutosClienteResponse();

            try
            {
                PersistenciaDB lDb = new PersistenciaDB();

                lRetorno = lDb.InserirPlanoClienteExistente(pRequest);

                lRetorno.StatusResposta = MensagemResponseStatusEnum.OK;

                lRetorno.DataResposta = DateTime.Now;

                logger.Info(string.Concat("Entrou no InserirPlanoClienteExistente e inseriu ", lRetorno.LstPlanoCliente.Count, " produto(s)"));
            }
            catch (Exception ex)
            {
                lRetorno.StatusResposta = MensagemResponseStatusEnum.ErroPrograma;

                lRetorno.DescricaoResposta = ex.ToString();

                logger.ErrorFormat("Erro em InserirPlanoClienteExistente - {0} - StackTrace - {1}", ex.Message, ex.StackTrace);
            }

            return(lRetorno);
        }
Пример #2
0
        /// <summary>
        /// Insere planos selecionados pelo cliente, inserindo também o código cblc, data adesão  - usado pelo portal, só inseri e NÃO exlui antes de inserir.
        /// </summary>
        /// <param name="pRequest"></param>
        /// <returns></returns>
        public InserirProdutosClienteResponse InserirPlanoClienteExistente(InserirProdutosClienteRequest pRequest)
        {
            AcessaDados acesso = new AcessaDados();

            acesso.ConnectionStringName = _ConnectionStringName;

            InserirProdutosClienteResponse lRetorno = new InserirProdutosClienteResponse();

            lRetorno.LstPlanoCliente = new List <PlanoClienteInfo>();

            lRetorno.LstPlanoCliente.AddRange(pRequest.LstPlanoCliente);

            logger.Info("Passou da linha lRetorno.LstPlanoCliente = pRequest.LstPlanoCliente;");

            acesso.Conexao._ConnectionStringName = _ConnectionStringName;

            var lDbConnection = acesso.Conexao.CreateIConnection();

            lDbConnection.Open();

            DbTransaction lTrans = lDbConnection.BeginTransaction();

            try
            {
                using (DbCommand cmdins = acesso.CreateCommand(lTrans, CommandType.StoredProcedure, "prc_ClienteExistenteProduto_ins"))
                {
                    foreach (PlanoClienteInfo info in lRetorno.LstPlanoCliente)
                    {
                        cmdins.Parameters.Clear();

                        acesso.AddInParameter(cmdins, "@ds_cpfcnpj", DbType.AnsiString, info.DsCpfCnpj);
                        acesso.AddInParameter(cmdins, "@dt_operacao", DbType.String, info.DtOperacao.ToString("yyyyMMdd"));
                        acesso.AddInParameter(cmdins, "@dt_adesao", DbType.String, info.DtAdesao.Value.ToString("yyyyMMdd"));
                        acesso.AddInParameter(cmdins, "@st_situacao", DbType.String, info.StSituacao);
                        acesso.AddInParameter(cmdins, "@id_produto_plano", DbType.Int32, info.IdProdutoPlano);
                        acesso.AddInParameter(cmdins, "@cd_cblc", DbType.Int32, info.CdCblc);
                        acesso.AddInParameter(cmdins, "@dt_fim_adesao", DbType.DateTime, info.DtFimAdesao);


                        acesso.ExecuteNonQuery(cmdins);
                    }
                }

                lTrans.Commit();
            }
            catch (Exception ex)
            {
                lTrans.Rollback();

                logger.ErrorFormat("Error - {0} - Stacktrace - {1}", ex.Message, ex.StackTrace);

                throw ex;
            }
            finally
            {
                if (lDbConnection.State != ConnectionState.Closed)
                {
                    lDbConnection.Close();
                    lDbConnection.Dispose();
                }
            }

            return(lRetorno);
        }