/// <summary> /// Determina si existe una receta segun su nombre /// </summary> /// <param name="nombre">Nombre de la receta a buscar</param> /// <returns>Valor que determina si la receta fue encontrada o no</returns> public bool Existe(string nombre) { if (string.IsNullOrEmpty(nombre)) { throw new OBMCateringException(Resources.RecetasBL_Validaciones_NombreNull); } Datos.RecetasDAL dalRecetas = dal.ObtenerRecetasDAL(); Datos.Receta recetaDAL = dalRecetas.ObtenerPorNombre(nombre); return(recetaDAL != null); }
/// <summary> /// Actualiza la informacion de una receta dentro del sistema /// Los datos que podran actualizarse son su estado, sus detalles o informacion y sus ingredientes /// </summary> /// <param name="receta">Receta a actualizar</param> public void Actualizar(Receta receta) { ValidarReceta(receta); if (receta.Ingredientes == null || receta.Ingredientes.Count == 0) { throw new OBMCateringException(Resources.RecetasBL_Validaciones_SinIngredientes); } EstadoReceta estado; if (receta.Ingredientes.Count == 0) { estado = EstadoReceta.SinIngredientes; } else { bool preciosFaltantes = preciosIngredientesBL.HayFaltantes(receta); if (preciosFaltantes) { estado = EstadoReceta.SinPrecio; } else { estado = EstadoReceta.Activa; } } Datos.RecetasDAL dalRecetas = dal.ObtenerRecetasDAL(); Datos.Receta recetaDAL = dalRecetas.ObtenerPorNombre(receta.Nombre); if (recetaDAL == null) { throw new OBMCateringException(string.Format(Resources.BL_Validaciones_RecetaInvalida, receta.Nombre)); } Datos.EstadoReceta estadoDAL = dalRecetas.ObtenerEstado(estado.ToString()); if (estadoDAL == null) { throw new OBMCateringException(string.Format(Resources.OrdenesCompraBL_Validaciones_EstadoInvalido, estado)); } recetaDAL.Detalle = receta.Detalle; recetaDAL.Estado = estadoDAL; foreach (IngredienteReceta ingredienteReceta in receta.Ingredientes) { Datos.IngredienteReceta ingredienteRecetaDAL = BuscarIngredienteReceta(ingredienteReceta.Ingrediente, recetaDAL); Datos.UnidadMedida unidadMedidaDAL = dalRecetas.ObtenerUnidad(ingredienteReceta.Unidad.ToString()); if (ingredienteRecetaDAL == null) { Datos.Ingrediente ingredienteDAL = PrepararIngrediente(ingredienteReceta.Ingrediente); ingredienteRecetaDAL = new Datos.IngredienteReceta { Ingrediente = ingredienteDAL, Cantidad = ingredienteReceta.Cantidad, Unidad = unidadMedidaDAL }; recetaDAL.Ingredientes.Add(ingredienteRecetaDAL); } else { ingredienteRecetaDAL.Cantidad = ingredienteReceta.Cantidad; ingredienteRecetaDAL.Unidad = unidadMedidaDAL; } } dalRecetas.Actualizar(recetaDAL); dal.Guardar(); if (estado == EstadoReceta.SinPrecio) { preciosIngredientesBL.CrearFaltantes(receta); } }