/// <summary> /// Busca un ArticuloPedido en una lista teniendo en cuenta su ID. /// </summary> /// <param name="lista"></param> /// <param name="id"></param> /// <returns>Retorna el ArticuloPedido en caso de encontrarlo. Caso contrario retorna null</returns> public static ArticuloPedido <Producto> FindArticuloInList(this List <ArticuloPedido <Producto> > lista, int id) { ArticuloPedido <Producto> auxArt = null; if (lista.Exists(x => x.IdProducto == id)) { auxArt = lista.Find(x => x.IdProducto == id); } return(auxArt); }
/// <summary> /// Agrega un artÃculo a la lista de ArticuloPedidos del Pedido, sumando su valor al precioTotal. /// </summary> /// <param name="articuloPedido"></param> public void AgregarArticulo(ArticuloPedido <T> articuloPedido) { precioTotal += articuloPedido.PrecioFinal; if (Productos.Exists(x => x.IdProducto == articuloPedido.IdProducto)) { ArticuloPedido <T> auxArt = Productos.Find(x => x.IdProducto == articuloPedido.IdProducto); auxArt.Cantidad += articuloPedido.Cantidad; auxArt.PrecioFinal = auxArt.Cantidad * auxArt.PrecioUnitario; } else { productos.Add(articuloPedido); } }
public static bool AgregarBebidaAlPedido(ArticuloPedido <Producto> articuloPedido) { if (pedidoEnCurso.Productos.ExistsArticuloInList(articuloPedido.IdProducto)) { if (listaBebidas.FindBebidaInList(articuloPedido.IdProducto).Stock >= (articuloPedido.Cantidad + pedidoEnCurso.Productos.FindArticuloInList(articuloPedido.IdProducto).Cantidad)) { pedidoEnCurso.AgregarArticulo(articuloPedido); return(true); } } else { if (listaBebidas.FindBebidaInList(articuloPedido.IdProducto).Stock >= articuloPedido.Cantidad) { pedidoEnCurso.AgregarArticulo(articuloPedido); return(true); } } return(false); }