public ActionResult Agregar(DetallesProductoViewModels productoVM) { BDContext context = new BDContext(); try { // obtener el id del usuario que esta logueado var userID = User.Identity.GetUserId(); // obtener el usuario con ese id de base de datos var usuario_BD = context.usuarios.Where(u => u.Usuario_ID.Equals(userID)).Single(); // obtener productos del carrito del usuario List <sp_obtenerProductosUsuarioCarrito_Result> lista_productos_cliente = context.sp_obtenerProductosUsuarioCarrito(usuario_BD.userId).ToList(); // verificar si el usuario ya tiene ese producto en el carrito foreach (var producto in lista_productos_cliente) { if (producto.productoId == productoVM.Id_Producto) { // usuario ya tiene ese producto en el carrito, preguntar si desea modificar return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } } // crear el producto que se va a agregar al carrito carrito producto_carrito = new carrito { productoId = productoVM.Id_Producto, userId = usuario_BD.userId, cantidad_producto = (int)productoVM.cantidad, fecha_agregado = DateTime.UtcNow, fecha_modificado = DateTime.UtcNow }; unidad_carrito.genericDAL.Add(producto_carrito); unidad_carrito.Complete(); // devolver http 200 return(new HttpStatusCodeResult(HttpStatusCode.OK)); } catch (Exception) { // error, devolver http 500 return(new HttpStatusCodeResult(HttpStatusCode.InternalServerError)); } }
// GET: HomeAdmin/Details/5 public ActionResult Detalles(int?id) { // revisar si el URL contiene un ID, si no entonces devolver 404 if (id == null || id == 0) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } // buscar el producto y los demas datos productos producto = unidad_productos.genericDAL.Get((int)id); marcas marca = unidad_marcas.genericDAL.Get((int)producto.id_marca); colecciones coleccion = unidad_colecciones.genericDAL.Get((int)producto.id_coleccion); categorias categoria = unidad_categorias.genericDAL.Get((int)producto.id_categoria); distribuidor distribuidor = unidad_distribuidor.genericDAL.Get((int)producto.id_distribuidor); // ver si el producto tiene estado bloqueado. Si si, devolver 404 if (producto.id_estado == 1) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } // asignar datos al view model correspondiente DetallesProductoViewModels producto_VM = new DetallesProductoViewModels { Id_Producto = producto.productoId, Nombre = producto.nombre, Precio = producto.precio, Descripcion = producto.descripcion, Modelo = producto.modelo, cantidad = producto.cantidad, marca = marca.nombre, coleccion = coleccion.nombre, categoria = categoria.nombre, distribuidor = distribuidor.nombre }; return(View("~/Views/Admin/ProductosAdmin/Detalles.cshtml", producto_VM)); }