public ActionResult BuscaPorIngrediente(string[] ingredientes) { SessionInitialize(); // Buscamos ingrediente a ingrediente IList<int> idsIngredientes = new List<int>(); IngredienteCAD ingredienteCad = new IngredienteCAD(session); IngredienteEN ingredienteEn = null; foreach(string ing in ingredientes) { // Solo si existe, añado a la lista. Solo buscamos por ingredientes que existen ingredienteEn = ingredienteCad.GetPorNombre(ing.ToLower()); if (ingredienteEn != null) idsIngredientes.Add(ingredienteEn.Id); } IList<Receta> list = null; if (idsIngredientes.Count() > 0) { RecetaCAD cad = new RecetaCAD(session); RecetaCEN cen = new RecetaCEN(cad); IList<RecetaEN> listEn = cen.BuscarPorIngrediente(idsIngredientes); list = new AssemblerReceta().ConvertListENToModel(listEn); } else { list = new List<Receta>(); } SessionClose(); ViewData["ingredientes"] = ingredientes; return View(list); }
// GET: Receta/Ver/5 public ActionResult Ver(int id) { SessionInitialize(); RecetaEN en = new RecetaCAD(session).ReadOIDDefault(id); Receta receta = new AssemblerReceta().ConvertENToModelUI(en); // Aunque parezca una tontería, con esto consigo la persistencia de los datos //foreach (LineaIngredienteEN lin in receta.LineasIngrediente) //{ // lin.Ingrediente.Id = lin.Ingrediente.Id; // lin.Ingrediente.Nombre = lin.Ingrediente.Nombre; //} //foreach(ComentarioEN com in receta.Comentarios) //{ // com.Usuario.Id = com.Usuario.Id; // com.Usuario.Nick = com.Usuario.Nick; //} if (User.Identity.IsAuthenticated) { UsuarioEN usuarioEn = new UsuarioCAD(session).GetByNick(User.Identity.Name); if (en.UsuariosFavorito.Contains(usuarioEn)) ViewData["esFavorito"] = "si"; else ViewData["esFavorito"] = "no"; // Obtengo listas de la compra del usuario actual ViewData["ListasCompra"] = usuarioEn.ListasCompra.ToList(); } SessionClose(); return View(receta); }
// GET: Receta/Ultimas public ActionResult Ultimas(string search) { SessionInitialize(); RecetaCAD recCAD = new RecetaCAD(session); RecetaCEN cen = new RecetaCEN(recCAD); IList<RecetaEN> listRecetaEN; IEnumerable<Receta> list; if (!String.IsNullOrEmpty(search)) { listRecetaEN = cen.Buscar(search); list = new AssemblerReceta().ConvertListENToModel(listRecetaEN).ToList(); } else { listRecetaEN = cen.VerUltimasRecetas(); list = new AssemblerReceta().ConvertListENToModel(listRecetaEN).ToList(); } SessionClose(); return View(list); }
// GET: Receta public ActionResult Index() { SessionInitialize(); IList<RecetaEN> listRecetaEn = new RecetaCAD(session).ReadAllDefault(0, -1); IEnumerable<Receta> recetas = new AssemblerReceta().ConvertListENToModel(listRecetaEn); SessionClose(); return View(recetas); }