public static bool AñadirCarrito(int idProducto, int cantidad, string atributos) { CarritoBE objCarritoBE; Carrito_ProductoBE objCarrito_ProductoBE = new Carrito_ProductoBE(); Carrito_Producto_Elemento_AtributoBE objCarrito_Producto_Elemento_AtributoBE = new Carrito_Producto_Elemento_AtributoBE(); ProductoBC objProductoBC = new ProductoBC(); ProductoBE objProductoBE = new ProductoBE(); //decimal total = 0; try { if (!ExisteProductoCarrito(idProducto, atributos)) { objCarritoBE = (CarritoBE)HttpContext.Current.Session["CARRITO"]; string[] arrAtributos = atributos.Split('|'); objProductoBE = objProductoBC.Get_Producto(idProducto); objCarrito_ProductoBE.Id_Producto = objProductoBE.Id_Producto; objCarrito_ProductoBE.Imagen = objProductoBE.lstImagen_ProductoBE[0].Nombre; objCarrito_ProductoBE.Nombre = objProductoBE.Nombre; objCarrito_ProductoBE.Precio = objProductoBE.Precio; objCarrito_ProductoBE.Cantidad = cantidad; foreach (string s in arrAtributos) { if (!string.IsNullOrEmpty(s)) { string[] arrElemento = s.Split(','); //Atributo,Elemento,Id_Elemento objCarrito_Producto_Elemento_AtributoBE = new Carrito_Producto_Elemento_AtributoBE(); objCarrito_Producto_Elemento_AtributoBE.Id_Elemento_Atributo = Convert.ToInt32(arrElemento[2]); objCarrito_Producto_Elemento_AtributoBE.Atributo = arrElemento[0]; objCarrito_Producto_Elemento_AtributoBE.Elemento = arrElemento[1]; objCarrito_ProductoBE.lstCarrito_Producto_Elemento_AtributoBE.Add(objCarrito_Producto_Elemento_AtributoBE); } } objCarritoBE.Total += cantidad * objProductoBE.Precio; if (HttpContext.Current.Session["USUARIO"] != null) { objCarritoBE.Id_Usuario = ((UsuarioBE)HttpContext.Current.Session["USUARIO"]).Id_Usuario; CarritoBC objCarritoBC = new CarritoBC(); Carrito_ProductoBC objCarrito_ProductoBC = new Carrito_ProductoBC(); if (objCarritoBE.lstCarrito_ProductoBE.Count == 0) //El carrito no existe { objCarritoBE.Id_Carrito = objCarritoBC.Insert_Carrito(objCarritoBE); } //else // objCarritoBC.Update_Carrito(objCarritoBE); objCarrito_ProductoBE.Id_Carrito = objCarritoBE.Id_Carrito; objCarrito_ProductoBE.Id_Carrito_Producto = objCarrito_ProductoBC.Insert_Carrito_Producto_Completo(objCarrito_ProductoBE); } objCarritoBE.lstCarrito_ProductoBE.Add(objCarrito_ProductoBE); objCarritoBE.PasosCarrito = EtapaCompra.Compra0; HttpContext.Current.Session["CARRITO"] = objCarritoBE; return(true); } else { return(false); } } catch (Exception) { throw; } }
public void Loguear(UsuarioBE objUsuarioBE) { try { Session["USUARIO"] = objUsuarioBE; lblUsuario.Text = objUsuarioBE.Usuario; MostrarUsuarioLogueado(true); //FormsAuthentication.Initialize(); CarritoBC objCarritoBC = new CarritoBC(); CarritoBE objCarritoBE = objCarritoBC.Get_Carrito_Usuario(objUsuarioBE.Id_Usuario); if (Session["CARRITO"] == null || ((CarritoBE)Session["CARRITO"]).lstCarrito_ProductoBE.Count == 0) { Session["CARRITO"] = objCarritoBE != null ? objCarritoBE : new CarritoBE(); } else //Hace un merge { CarritoBE objCarritoSessionBE = (CarritoBE)Session["CARRITO"]; Carrito_ProductoBC objCarrito_ProductoBC = new Carrito_ProductoBC(); if (objCarritoBE == null) //Si el usuario no tiene productos en el carrito { objCarritoBE = new CarritoBE(); objCarritoBE.Id_Usuario = objUsuarioBE.Id_Usuario; objCarritoBE.Id_Carrito = objCarritoBC.Insert_Carrito(objCarritoBE); } //Se obtiene una lista de los productos en sesion que no han sido agregados a BD foreach (Carrito_ProductoBE cp in objCarritoBE.lstCarrito_ProductoBE) { if (cp.lstCarrito_Producto_Elemento_AtributoBE.Count == 0) //Si no tiene atributos { objCarritoSessionBE.lstCarrito_ProductoBE = (from c in objCarritoSessionBE.lstCarrito_ProductoBE where c.Id_Producto != cp.Id_Producto select c).ToList(); } else { foreach (Carrito_ProductoBE cps in objCarritoSessionBE.lstCarrito_ProductoBE) { if (cps.Id_Producto == cp.Id_Producto) { int cantidadAtributo = 0; foreach (Carrito_Producto_Elemento_AtributoBE cpeas in cps.lstCarrito_Producto_Elemento_AtributoBE) { foreach (Carrito_Producto_Elemento_AtributoBE cpea in cp.lstCarrito_Producto_Elemento_AtributoBE) { if (cpeas.Id_Elemento_Atributo == cpea.Id_Elemento_Atributo) { cantidadAtributo++; break; } } } if (cantidadAtributo == cps.lstCarrito_Producto_Elemento_AtributoBE.Count) { objCarritoSessionBE.lstCarrito_ProductoBE.Remove(cps); break; } } } } } foreach (Carrito_ProductoBE cp in objCarritoSessionBE.lstCarrito_ProductoBE) { cp.Id_Carrito = objCarritoBE.Id_Carrito; cp.Id_Carrito_Producto = objCarrito_ProductoBC.Insert_Carrito_Producto_Completo(cp); objCarritoBE.lstCarrito_ProductoBE.Add(cp); } objCarritoBE.Total = (from c in objCarritoBE.lstCarrito_ProductoBE select c.Precio).Sum(); Session["CARRITO"] = objCarritoBE; } CargarItemsCarrito(); if (objUsuarioBE.Activo_Correo) { hdVerifico.Value = "1"; } else { hdVerifico.Value = "0"; } } catch (Exception) { throw; } }