/// <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); }
/// <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); }