// 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 void CrearLineaIngrediente(int p_oid, int p_cantidad, EnMiNeveraGenNHibernate.Enumerated.EnMiNevera.UnidadesEnum p_unidad, string p_ingrediente) { IngredienteEN ingredienteEN = null; LineaIngredienteEN lineaIngredienteEN = 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; } LineaIngredienteCAD lineaIngredienteCAD = new LineaIngredienteCAD(session); lineaIngredienteEN = new LineaIngredienteEN(); lineaIngredienteEN.Ingrediente = ingredienteCAD.ReadOIDDefault(oid_ingrediente); lineaIngredienteEN.Cantidad = p_cantidad; lineaIngredienteEN.Unidad = p_unidad; lineaIngredienteEN.Ingrediente.Nombre = p_ingrediente.ToLower(); lineaIngredienteCAD.New_(lineaIngredienteEN); SessionCommit(); } catch (Exception ex) { SessionRollBack(); throw ex; } finally { SessionClose(); } }
//public ActionResult Crear(Receta rec, HttpPostedFileBase file, FormCollection datos) 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()); } }