public void CrearLineaListaCompra(int p_oid, int p_cantidad, EnMiNeveraGenNHibernate.Enumerated.EnMiNevera.UnidadesEnum p_unidad, string p_ingrediente) { IngredienteEN ingredienteEN = null; LineaListaCompraEN lineaListaCompraEN = null; int oid_ingrediente; try { SessionInitializeTransaction(); IngredienteCAD ingredienteCAD = new IngredienteCAD(session); ingredienteEN = ingredienteCAD.GetPorNombre(p_ingrediente.ToLower()); if (ingredienteEN == null) { // Creamos el ingrediente si no existe ingredienteEN = new IngredienteEN(); ingredienteEN.Nombre = p_ingrediente.ToLower(); oid_ingrediente = ingredienteCAD.New_(ingredienteEN); ingredienteEN = ingredienteCAD.ReadOIDDefault(oid_ingrediente); } else { oid_ingrediente = ingredienteEN.Id; } LineaListaCompraCAD lineaListaCompraCAD = new LineaListaCompraCAD(session); lineaListaCompraEN = new LineaListaCompraEN(); lineaListaCompraEN.Ingrediente = ingredienteCAD.ReadOIDDefault(oid_ingrediente); lineaListaCompraEN.Cantidad = p_cantidad; lineaListaCompraEN.Unidad = p_unidad; lineaListaCompraEN.Comprado = false; lineaListaCompraEN.Ingrediente.Nombre = p_ingrediente.ToLower(); lineaListaCompraCAD.New_(lineaListaCompraEN); SessionCommit(); } catch (Exception ex) { SessionRollBack(); throw ex; } finally { SessionClose(); } }
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: Ingrediente/Nube public ActionResult Nube() { SessionInitialize(); IngredienteCAD ingCAD = new IngredienteCAD(session); LineaIngredienteCAD linCAD = new LineaIngredienteCAD(session); IngredienteCEN cen = new IngredienteCEN(ingCAD); IList<IngredienteEN> listIngredienteEN = cen.VerNubeIngredientes(); IEnumerable<Ingrediente> list = new AssemblerIngrediente().ConvertListENToModel(listIngredienteEN).ToList(); SessionClose(); return View(list); }
public ActionResult Crear(Receta rec, HttpPostedFileBase file, int[] canIngrediente, UnidadesEnum[] uniIngrediente, string[] nomIngrediente, int[] numPaso, string[] desPaso) { string imagesDir = "Images/Uploads"; string fileName = "", path = ""; // Verify that the user selected a file if (file != null && file.ContentLength > 0) { // extract only the fielname fileName = Path.GetFileName(file.FileName); // store the file inside ~/App_Data/uploads folder path = Path.Combine(Server.MapPath("~/"+imagesDir), fileName); //string pathDef = path.Replace(@"\\", @"\"); file.SaveAs(path); } try { fileName = "/"+imagesDir+"/" + fileName; // Parametros por defecto rec.FechaCreacion = DateTime.Now; rec.Estado = EnMiNeveraGenNHibernate.Enumerated.EnMiNevera.EstadosEnum.publicado; rec.Foto = fileName; // Obtenemos los pasos IList<Paso> pasos = new List<Paso>(); Paso paso = null; for(int i=0; i<numPaso.Count(); i++) { paso = new Paso(); paso.NumeroPaso = numPaso[i]; paso.Descripcion = desPaso[i]; pasos.Add(paso); } // Obtenemos las lineas de ingrediente IList<LineaIngrediente> lineasIng = new List<LineaIngrediente>(); LineaIngrediente lin = null; for(int i=0; i<canIngrediente.Count(); i++) { lin = new LineaIngrediente(); lin.Cantidad = canIngrediente[i]; lin.NombreIngrediente = nomIngrediente[i]; lin.Unidad = uniIngrediente[i]; lineasIng.Add(lin); } SessionInitialize(); using (var transaction = session.BeginTransaction ()) { // Obtengo el id del usuario int idUsuario = new UsuarioCAD(session).GetByNick(User.Identity.Name).Id; RecetaCAD cad = new RecetaCAD(session); RecetaCEN cen = new RecetaCEN(cad); int idReceta = cen.New_(rec.Nombre, rec.Descripcion, rec.Foto, idUsuario, rec.FechaCreacion, rec.Estado); // Creamos los pasos PasosCAD pasosCad = new PasosCAD(session); PasosCEN pasosCen = new PasosCEN(pasosCad); foreach(Paso p in pasos) { pasosCen.New_(p.Descripcion, idReceta, p.NumeroPaso); } // Creamos las lineas de ingrediente LineaIngredienteCAD lineaIngredienteCad = new LineaIngredienteCAD(session); LineaIngredienteCEN lineaIngredienteCen = new LineaIngredienteCEN(lineaIngredienteCad); IngredienteCAD ingredienteCad = new IngredienteCAD(session); IngredienteEN ingredienteEn; foreach(LineaIngrediente l in lineasIng) { // por cada linea, si no existe el ingrediente, lo creamos ingredienteEn = ingredienteCad.GetPorNombre(l.NombreIngrediente); if(ingredienteEn==null) { ingredienteEn = new IngredienteEN(); ingredienteEn.Nombre = l.NombreIngrediente; ingredienteEn.Id = ingredienteCad.New_(ingredienteEn); } lineaIngredienteCen.New_(l.Cantidad, l.Unidad, ingredienteEn.Id, idReceta); } transaction.Commit (); } SessionClose(); //RecetaCEN cen = new RecetaCEN(); //// Obtengo el id del usuario //int idUsuario = new UsuarioCAD().GetByNick(User.Identity.Name).Id; //rec.FechaCreacion = DateTime.Now; //rec.Estado = EnMiNeveraGenNHibernate.Enumerated.EnMiNevera.EstadosEnum.publicado; //cen.New_(rec.Nombre, rec.Descripcion, fileName, idUsuario, rec.FechaCreacion, rec.Estado); return RedirectToAction("Index"); } catch { return View(); } }