public RetornoModel <SessionModel> GetSessao(bool completo = false) { if (completo) { using (var ado = new MasterADOBase()) { var bo = new CompraBOModel(SessionModel.GetSiteId(), ado); CarregarCompra(bo, true); } } RetornoModel <SessionModel> retorno = new RetornoModel <SessionModel>(); retorno.Sucesso = true; retorno.Mensagem = "OK"; retorno.Retorno = SessionModel; return(ParseRetorno(retorno)); }
protected void CarregarCompra(CompraBOModel bo, bool carregarEntregas = false) { LogUtil.Debug(string.Format("##CarregarCompra## SESSION {0}", (this.SessionModel != null) ? this.SessionModel.SessionID : "NA")); CarregarCliente(bo.clienteBO, carregarEntregas); try { SessionModel.Compra = new CompraModel(); SessionModel.Compra.EstruturaVenda = GerarEstruturaVenda(); SessionModel.Compra.Login = SessionModel.Login; SessionModel.Compra.SessionID = SessionModel.SessionID; SessionModel.Compra.CarrinhoItens = bo.carrinhoBO.Listar(SessionModel.SessionID, SessionModel.ClienteID, enumCarrinhoStatus.reservado); if ((carregarEntregas || SessionModel.EntregaControleID > 0) && SessionModel.Compra.CarrinhoItens.Count > 0) { SessionModel.Compra = bo.entregaBO.Carregar(SessionModel.Compra); var ativarTaxasEntregaDinamica = Convert.ToBoolean(ConfigurationManager.AppSettings["AtivarTaxasEntregaDinamica"]); if (ativarTaxasEntregaDinamica) { var taxasEntregaDinamica = ConfigurationManager.AppSettings["TaxasEntregaDinamica"].Split('|'); foreach (var taxaEntregaDinamica in taxasEntregaDinamica) { var configTaxaEntregaDinamica = taxaEntregaDinamica.Split(';'); if (configTaxaEntregaDinamica.Length == 3) { var idEntregaControleDinamica = Convert.ToInt32(configTaxaEntregaDinamica[0]); var idEntregaControleCombinar = Convert.ToInt32(configTaxaEntregaDinamica[1]); var valorEntregaControleDinamica = Convert.ToDecimal(configTaxaEntregaDinamica[2], new CultureInfo("pt-BR")); var temIdEntregaControleCombinar = SessionModel.Compra.EntregaControles.Any(a => a.ID == idEntregaControleCombinar); if (temIdEntregaControleCombinar) { var entregaControleDinamica = SessionModel.Compra.EntregaControles.FirstOrDefault(f => f.ID == idEntregaControleDinamica); if (entregaControleDinamica != null) { entregaControleDinamica.Valor = valorEntregaControleDinamica; } } } } } } if (SessionModel.Compra.EntregaControles != null && SessionModel.Compra.EntregaControles.Count > 0 && SessionModel.ValesIngressoID != null && SessionModel.ValesIngressoID.Count > 0) { SessionModel.Compra.ValeIngressos = bo.valeIngressoBO.Listar(SessionModel.ValesIngressoID); } SessionModel.Compra.EntregaControleID = SessionModel.EntregaControleID; SessionModel.Compra.ClienteEnderecoID = SessionModel.ClienteEnderecoID; SessionModel.Compra.PDVID = SessionModel.PDVID; SessionModel.Compra = bo.carrinhoBO.CalcularValores(SessionModel.Compra); SessionModel.Compra = bo.cotaBO.CarregarCotaInformacao(SessionModel.Compra); } catch (Exception ex) { LogUtil.Error(string.Format("##CarregarCompra.EXCEPTION## SESSION {0} MSG {1}", (this.SessionModel != null) ? this.SessionModel.SessionID : "NA", ex.Message), ex); var retorno = new RetornoModel <CompraModel>(); retorno.Mensagem = ex.Message; retorno.Sucesso = false; //LogUtil.Error(ex); throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.InternalServerError, ParseRetorno(retorno))); } }