public static decimal QuitarCarrito(int id_producto, string idAtributos) { CarritoBE objCarritoBE = null; List <Carrito_ProductoBE> lstCarrito_ProductoBE = null; Carrito_ProductoBE objCarrito_ProductoBE = new Carrito_ProductoBE(); try { objCarritoBE = (CarritoBE)HttpContext.Current.Session["CARRITO"]; lstCarrito_ProductoBE = (from c in objCarritoBE.lstCarrito_ProductoBE where c.Id_Producto == Convert.ToInt32(id_producto) select c).ToList(); foreach (Carrito_ProductoBE cp in lstCarrito_ProductoBE) { string[] atributos = idAtributos.Split('_'); int atributosEliminados = 0; foreach (Carrito_Producto_Elemento_AtributoBE cpe in cp.lstCarrito_Producto_Elemento_AtributoBE) { foreach (string s in atributos) { if (!string.IsNullOrEmpty(s) && cpe.Id_Elemento_Atributo == Convert.ToInt32(s)) { atributosEliminados++; break; } } } if (atributosEliminados == atributos.Length - 1) { objCarrito_ProductoBE = cp; break; } } if (objCarritoBE.lstCarrito_ProductoBE.Count == 1) { objCarritoBE = new CarritoBE(); if (HttpContext.Current.Session["USUARIO"] != null) { CarritoBC objCarritoBC = new CarritoBC(); objCarritoBC.Delete_Carrito_Total(((UsuarioBE)HttpContext.Current.Session["USUARIO"]).Id_Usuario); } } else { objCarritoBE.lstCarrito_ProductoBE.Remove(objCarrito_ProductoBE); objCarritoBE.Total -= objCarrito_ProductoBE.Precio * objCarrito_ProductoBE.Cantidad; if (HttpContext.Current.Session["USUARIO"] != null) { Carrito_ProductoBC objCarrito_ProductoBC = new Carrito_ProductoBC(); objCarrito_ProductoBC.Delete_Carrito_Producto(objCarrito_ProductoBE.Id_Carrito_Producto); } } HttpContext.Current.Session["CARRITO"] = objCarritoBE; return(objCarrito_ProductoBE.Precio * objCarrito_ProductoBE.Cantidad); } catch (Exception ex) { LogFile.EscribirLog(ex); throw; } }
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; } }