public RetornoModel <tValeIngresso> GetValeIngresso(string codigo) { RetornoModel <tValeIngresso> retorno = new RetornoModel <tValeIngresso>(); tValeIngresso valeIngresso = null; try { using (var ado = new MasterADOBase()) { ValeIngressoBO valeIngressoBO = new ValeIngressoBO(ado); valeIngresso = valeIngressoBO.ValidarCodigo(codigo); } } catch (Exception ex) { retorno.Mensagem = ex.Message; retorno.Sucesso = false; LogUtil.Error(ex); throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.InternalServerError, ParseRetorno(retorno))); } retorno.Retorno = valeIngresso; if (valeIngresso != null) { retorno.Mensagem = "OK"; retorno.Sucesso = true; } else { retorno.Mensagem = "Código do vale ingresso inválido"; retorno.Sucesso = false; NewRelicIgnoreTransaction(); throw new HttpResponseException(Request.CreateResponse((HttpStatusCode)422, ParseRetorno(retorno))); } return(ParseRetorno(retorno)); }
public void ValeIngressoBO_ValidarIngresso() { tValeIngresso valeIngressoValido = valeIngressoBO.ValidarCodigo("V67YU28JK8"); tValeIngresso valeIngressoInexistente = valeIngressoBO.ValidarCodigo("X35YTE6171"); tValeIngresso valeIngressoNaoDisponivel = valeIngressoBO.ValidarCodigo("00200105023098"); Assert.AreEqual(true, valeIngressoValido != null && valeIngressoValido.ValeIngressoTipo != null && valeIngressoInexistente == null && valeIngressoNaoDisponivel == null); }
/// <summary> /// Método que remove um vale ingresso de uma compra e retorna a compra com valor recalculado. /// </summary> /// <param name="compra"></param> /// <param name="valeIngresso"></param> /// <returns></returns> public CompraModel RemoverValeIngresso(CompraModel compra, tValeIngresso valeIngresso) { CarrinhoBO carrinhoBO = new CarrinhoBO(ado); if (compra.ValeIngressos != null && valeIngresso != null) { compra.ValeIngressos.RemoveAll(x => x.ID == valeIngresso.ID); compra = carrinhoBO.CalcularValores(compra); } return(compra); }
/// <summary> /// Método que Verifica se pode ser inserido um valeIngresso em uma compra. /// </summary> /// <param name="compra"></param> /// <param name="valeIngresso"></param> /// <returns></returns> public RetornoModel <CompraModel> VerificarCompra(CompraModel compra, tValeIngresso valeIngresso = null) { RetornoModel <CompraModel> retorno = new RetornoModel <CompraModel>(); retorno.Sucesso = true; retorno.Mensagem = "Vale Ingresso pode ser inserido."; retorno.Retorno = compra; // if (compra.CarrinhoItens != null && compra.CarrinhoItens.Count(x => x.CotaItemObject != null && x.CotaItemObject.ValidaBinAsBool) != 0) { retorno.Sucesso = false; retorno.Mensagem = "O carrinho possui um item com cota bin, por isso não podem ser adicionados VIRs."; } //Teste de valor else if (compra.Total == null || compra.Total.ValorTotal == 0) { retorno.Sucesso = false; retorno.Mensagem = "O carrinho está com valor total 0, por isso não podem ser adicionados VIRs."; } //teste que veirifica se existe um vale não acumulativo inserido else if (compra.ValeIngressos != null && compra.ValeIngressos.Count(x => !(x.ValeIngressoTipo.AcumulativoAsBool)) > 0) { retorno.Sucesso = false; retorno.Mensagem = "A compra possui um vale ingresso não acumulativo, por isso não podem se adicionados VIRs."; } else if (valeIngresso != null) { //verifica se o VIR é não acumulativo e se já tem VIRs na compra if (!(valeIngresso.ValeIngressoTipo.AcumulativoAsBool) && compra.ValeIngressos.Count > 0) { retorno.Sucesso = false; retorno.Mensagem = "A compra possui um ou mais vale(s) ingresso(s) e o vale ingresso que está sendo inserido não é acumulativo, por isso não pode ser adicionado."; } //Faz uma cópia do objeto compra adicionando o vale ingresso passado no parametro. Se o VIR adicionado não afetar o valor da compra não deixa inserir else { CarrinhoBO carrinhoBO = new CarrinhoBO(ado); CompraModel compraAux = new CompraModel(); compraAux.CopyFrom(compra); compraAux.ValeIngressos = compra.ValeIngressos.ToList(); compraAux.ValeIngressos.Add(valeIngresso); carrinhoBO.CalcularValores(compraAux); if (compra.Total.ValorTotal == compraAux.Total.ValorTotal) { retorno.Sucesso = false; retorno.Mensagem = "O VIR que está sendo adicionado não altera o valor total da compra, por isso ele não pode ser adicionado."; } } } return(retorno); }
public void ValeIngressoBO_RemoverVale() { CarrinhoBO carrinhoBO = new CarrinhoBO(); CompraModel compra = new CompraModel(); compra.CarrinhoItens = carrinhoBO.Listar("0003zo4qtrvb2ckt4c2qdy00", IRCore.DataAccess.Model.Enumerator.enumCarrinhoStatus.reservado); compra = carrinhoBO.CalcularValores(compra); tValeIngresso valeIngressoNaoAcumulativo = valeIngressoBO.ValidarCodigo("abc123teste2"); tValeIngresso valeIngressoAcumulativo = valeIngressoBO.ValidarCodigo("abc123teste3"); RetornoModel <CompraModel> retorno = valeIngressoBO.InserirValeIngresso(compra, valeIngressoAcumulativo); compra = retorno.Retorno; compra = valeIngressoBO.RemoverValeIngresso(compra, valeIngressoAcumulativo); Assert.AreEqual(true, compra.Total != null && compra.Total.ValorTotal == 118 && compra.ValeIngressos.Count == 0); }
/// <summary> /// Método que insere um vale ingresso em um objeto compra. /// </summary> /// <param name="compra"></param> /// <param name="valeIngresso"></param> /// <returns></returns> public RetornoModel <CompraModel> InserirValeIngresso(CompraModel compra, tValeIngresso valeIngresso) { if (compra.ValeIngressos == null) { compra.ValeIngressos = new List <tValeIngresso>(); } RetornoModel <CompraModel> retornoModel = VerificarCompra(compra, valeIngresso); if (retornoModel.Sucesso) { CarrinhoBO carrinhoBO = new CarrinhoBO(ado); retornoModel.Retorno.ValeIngressos.Add(valeIngresso); retornoModel.Retorno = carrinhoBO.CalcularValores(retornoModel.Retorno); } return(retornoModel); }
public void ValeIngressoBO_InserirVales() { CarrinhoBO carrinhoBO = new CarrinhoBO(); CompraModel compra = new CompraModel(); compra.CarrinhoItens = carrinhoBO.Listar("0003zo4qtrvb2ckt4c2qdy00", IRCore.DataAccess.Model.Enumerator.enumCarrinhoStatus.reservado); compra = carrinhoBO.CalcularValores(compra); tValeIngresso valeIngressoNaoAcumulativo = valeIngressoBO.ValidarCodigo("abc123teste2"); tValeIngresso valeIngressoAcumulativo = valeIngressoBO.ValidarCodigo("abc123teste3"); RetornoModel <CompraModel> retorno = valeIngressoBO.InserirValeIngresso(compra, valeIngressoAcumulativo); compra = retorno.Retorno; Assert.AreEqual(true, retorno.Sucesso && compra.Total.ValorTotal == 18); //Segunda parte retorno = valeIngressoBO.InserirValeIngresso(compra, valeIngressoNaoAcumulativo); compra = retorno.Retorno; Assert.AreEqual(true, !retorno.Sucesso && retorno.Mensagem.Equals("A compra possui um ou mais vale(s) ingresso(s) e o vale ingresso que está sendo inserido não é acumulativo, por isso não pode ser adicionado.")); }
private tValeIngresso addResultListar(tValeIngresso vale, tValeIngressoTipo tipo) { vale.ValeIngressoTipo = tipo; return(vale); }