public ActionResult Create(Comentario comentario, int idReceta)
        {
            // Obtenemos usuario actual
            UsuarioEN usuarioEn = new UsuarioCAD().GetByNick(User.Identity.Name);

            comentario.Fecha = DateTime.Now;

            int id = new ComentarioCEN().New_(usuarioEn.Id, idReceta, comentario.ComentarioTexto, comentario.Fecha);

            return RedirectToAction("ver", "receta", new { id = idReceta });
        }
Exemple #2
0
        public bool banearCP(int p_oid, int p_usuario)
        {
            //IPedidoCAD _IPedidoCAD = null;
            //PedidoCEN pedidoCEN = null;
            //ArticuloCP articuloCP = null;
            int oid = -1;
            bool devuelve = false;
            RecetaCEN recetaCEN = null;
            UsuarioCEN usuarioCEN = null;

            try
            {
                SessionInitializeTransaction();
                RecetaCAD recetaCAD = new RecetaCAD(session);
                recetaCEN = new RecetaCEN(recetaCAD);
                UsuarioCAD usuarioCAD = new UsuarioCAD(session);
                usuarioCEN = new UsuarioCEN(usuarioCAD);
                RecetaEN recetaEN = new RecetaEN();
                recetaEN = recetaCAD.ReadOIDDefault(p_oid);
                UsuarioEN usuarioEN = new UsuarioEN();
                usuarioEN = usuarioCAD.ReadOIDDefault(p_usuario);
                recetaEN.Usuario = usuarioEN;
                System.Console.WriteLine("\n Entro aqui1 \n");
                if (recetaEN.Estado.Equals(EstadosEnum.publicado))
                {
                    System.Console.WriteLine("\n Entro aqui2\n");
                    recetaEN.Estado = EstadosEnum.baneado;
                    devuelve = true;
                }
                else if (recetaEN.Estado.Equals(EstadosEnum.baneado))
                {
                    System.Console.WriteLine("\n Entro aqui3\n");
                    recetaEN.Estado = EstadosEnum.publicado;
                    devuelve = true;
                }
                System.Console.WriteLine("\n Entro aqui4 \n");
                recetaCAD.Modify(recetaEN);
                SessionCommit();

            }
            catch (Exception ex)
            {
                SessionRollBack();
                throw ex;
            }
            finally
            {
                SessionClose();
            }

            return devuelve;
        }
Exemple #3
0
        public bool dejarSeguir(String p_oid, String p_usuario)
        {
            bool devuelve = false;
            bool encontrado = false;
            UsuarioCEN usuarioCEN = null;

            try
            {
                SessionInitializeTransaction();
                UsuarioCAD usuarioCAD = new UsuarioCAD(session);
                usuarioCEN = new UsuarioCEN(usuarioCAD);
                UsuarioEN usuarioEN = new UsuarioEN();
                UsuarioEN usuarioASeguirEN = new UsuarioEN();
                usuarioEN = usuarioCAD.ReadOIDDefault(p_oid);
                usuarioASeguirEN = usuarioCAD.ReadOIDDefault(p_usuario);

                IList<UsuarioEN> listaSeguidos = usuarioEN.Seguidos;
                if (listaSeguidos != null)
                {
                    foreach (UsuarioEN entry in listaSeguidos)
                    {
                        if (entry.Id.Equals(p_usuario))
                        {
                            encontrado = true;

                        }

                    }

                }
                if (encontrado == true)
                {
                    listaSeguidos.Remove(usuarioASeguirEN);
                    devuelve = true;
                }

                SessionCommit();

            }
            catch (Exception ex)
            {
                SessionRollBack();
                throw ex;
            }
            finally
            {
                SessionClose();
            }

            return devuelve;
        }
Exemple #4
0
        public bool cambiarNumPasos(int p_oid, int p_num_paso_old, int p_num_paso_new, int p_receta, String p_usuario)
        {
            bool devuelve = false;
            RecetaCEN recetaCEN = null;
            PasosCEN pasosCEN = null;
            UsuarioCEN usuarioCEN = null;

            try
            {
                SessionInitializeTransaction();
                RecetaCAD recetaCAD = new RecetaCAD(session);
                recetaCEN = new RecetaCEN(recetaCAD);
                UsuarioCAD usuarioCAD = new UsuarioCAD(session);
                usuarioCEN = new UsuarioCEN(usuarioCAD);
                PasosCAD pasosCAD = new PasosCAD(session);
                pasosCEN = new PasosCEN(pasosCAD);
                PasosEN pasosEN = new PasosEN();
                pasosEN = pasosCAD.ReadOIDDefault(p_oid);
                RecetaEN recetaEN = new RecetaEN();
                recetaEN = recetaCAD.ReadOIDDefault(p_receta);
                UsuarioEN usuarioEN = new UsuarioEN();
                usuarioEN = usuarioCAD.ReadOIDDefault(p_usuario);
                recetaEN.Usuario = usuarioEN;
                pasosEN.Receta = recetaEN;
                System.Console.WriteLine("\n Entro aqui1 \n");
                if (pasosEN.NumeroPaso != p_num_paso_new)
                {
                    pasosEN.NumeroPaso = p_num_paso_new;
                    pasosCAD.Modify(pasosEN);
                }

                SessionCommit();

            }
            catch (Exception ex)
            {
                SessionRollBack();
                throw ex;
            }
            finally
            {
                SessionClose();
            }

            return devuelve;
        }
        public void GuardarFavorito(int p_oid, int p_receta)
        {
            /*PROTECTED REGION ID(EnMiNeveraGenNHibernate.CEN.EnMiNevera_Usuario_guardarFavorito) ENABLED START*/

            // Write here your custom code...

            /*
             * UsuarioEN usuarioEN = _IUsuarioCAD.ReadOIDDefault (p_oid);
             * RecetaEN favorito = new RecetaEN ();
             *
             * //favorito = _IRecetaCAD.ReadOIDDefault(p_receta);
             *
             * if (!usuarioEN.Favoritos.Contains (favorito))
             *  usuarioEN.Favoritos.Add (favorito);
             * else
             *  usuarioEN.Favoritos.Remove (favorito);
             */

            using (ISession session = NHibernateHelper.OpenSession ())
            {
                using (var transaction = session.BeginTransaction ())
                {
                        UsuarioEN usuarioEn = new UsuarioCAD (session).ReadOIDDefault (p_oid);
                        RecetaEN recetaEn = new RecetaCAD (session).ReadOIDDefault (p_receta);

                        if (!usuarioEn.Favoritos.Contains (recetaEn)) {
                                usuarioEn.Favoritos.Add (recetaEn);
                                recetaEn.UsuariosFavorito.Add (usuarioEn);
                        }
                        else{
                                recetaEn.UsuariosFavorito.Remove (usuarioEn);
                                usuarioEn.Favoritos.Remove (recetaEn);
                        }

                        transaction.Commit ();
                }
            }

            //throw new NotImplementedException ("Method GuardarFavorito() not yet implemented.");

            /*PROTECTED REGION END*/
        }
        // GET: Actividad/Ver
        public ActionResult Ver(int id)
        {
            SessionInitialize();
            UsuarioEN usuEN = new UsuarioCAD(session).ReadOIDDefault(id);
            IList<UsuarioEN> listSeguidosEn = usuEN.Seguidos;
            IList<String> seguidosDeSeguidos = new List<String>();
            IList<UsuarioEN> seguidos = new List<UsuarioEN>();

            foreach (UsuarioEN usu in listSeguidosEn)
            {
                seguidos.Add(usu);
                foreach (UsuarioEN usuSeguidos in usu.Seguidos)
                {
                    seguidosDeSeguidos.Add(usuSeguidos.Nick);

                }
            }

            //IEnumerable<Usuario> usuActividad = new AssemblerUsuario().ConvertListENToModel(seguidosDeSeguidos).ToList();
            IEnumerable<Usuario> usuDeQuien = new AssemblerUsuario().ConvertListENToModel(listSeguidosEn).ToList();

            SessionClose();
            return View(Tuple.Create(usuDeQuien, seguidosDeSeguidos));
        }
Exemple #7
0
        public bool seguir(String p_oid, String p_usuario_a_seguir)
        {
            bool devuelve = false;
            bool encontrado = false;
            UsuarioCEN usuarioCEN = null;
            int cont = 0;

            try
            {
                SessionInitializeTransaction();
                UsuarioCAD usuarioCAD = new UsuarioCAD(session);
                usuarioCEN = new UsuarioCEN(usuarioCAD);
                UsuarioEN usuarioEN = new UsuarioEN();
                UsuarioEN usuarioASeguirEN = new UsuarioEN();
                usuarioEN = usuarioCAD.ReadOIDDefault(p_oid);
                usuarioASeguirEN = usuarioCAD.ReadOIDDefault(p_usuario_a_seguir);

                IList<UsuarioEN> listaSeguidos = usuarioEN.Seguidos;
                if (listaSeguidos != null)
                {
                    foreach (UsuarioEN entry in listaSeguidos)
                    {
                        if (!entry.Id.Equals(p_usuario_a_seguir))
                        {
                            encontrado = true;

                        }
                        cont++;
                    }

                }
                if (encontrado == true) {
                    listaSeguidos.Add(usuarioASeguirEN);
                    devuelve = true;
                }
                //Si al principio no tiene ningun seguidor y su lista esta vacia entra aquí y lo guarda
                if (cont == 0)
                {
                    listaSeguidos.Add(usuarioASeguirEN);
                    devuelve = true;
                }
                SessionCommit();

            }
            catch (Exception ex)
            {
                SessionRollBack();
                throw ex;
            }
            finally
            {
                SessionClose();
            }

            return devuelve;
        }
Exemple #8
0
        public bool guardarFavorito(String p_oid, String p_receta)
        {
            bool devuelve = false;

            UsuarioCEN usuarioCEN = null;
            RecetaCEN recetaCEN = null;

            try
            {
                SessionInitializeTransaction();
                UsuarioCAD usuarioCAD = new UsuarioCAD(session);
                usuarioCEN = new UsuarioCEN(usuarioCAD);
                UsuarioEN usuarioEN = new UsuarioEN();
                usuarioEN = usuarioCAD.ReadOIDDefault(p_oid);
                RecetaCAD recetaCAD = new RecetaCAD(session);
                recetaCEN = new RecetaCEN(recetaCAD);
                RecetaEN recetaEN = new RecetaEN();
                recetaEN = recetaCAD.ReadOIDDefault(p_oid);

                if (!usuarioEN.Favoritos.Contains(recetaEN))
                {
                    usuarioEN.Favoritos.Add(recetaEN);
                    devuelve = true;
                }
                else
                    usuarioEN.Favoritos.Remove(recetaEN);
                SessionCommit();

            }
            catch (Exception ex)
            {
                SessionRollBack();
                throw ex;
            }
            finally
            {
                SessionClose();
            }

            return devuelve;
        }
        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();
            }
        }
        // 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);
        }
        public ActionResult Favorito(int id)
        {
            SessionInitialize();

            UsuarioCAD usuarioCad = new UsuarioCAD(session);

            UsuarioEN usuarioEn = usuarioCad.GetByNick(User.Identity.Name);

            new UsuarioCEN(usuarioCad).GuardarFavorito(usuarioEn.Id, id);

            SessionClose();

            return RedirectToAction("ver", new { id = id });
        }
        public ActionResult Login(LoginModel model, string returnUrl)
        {
            //if (ModelState.IsValid && WebSecurity.Login(model.Nick, model.Password, persistCookie: model.RememberMe))
            if (ModelState.IsValid)
            {
                UsuarioCEN cen = new UsuarioCEN();
                int id = cen.Login(model.Nick, model.Nick, model.Password);
                if (id != -1)
                {
                    // Obtengo el nick, para trabajar con él, ya que puede haber logueado con nick o email
                    // Siempre vamos a trabajar con el nick
                    UsuarioEN en = new UsuarioCAD().ReadOIDDefault(id);
                    model.Nick = en.Nick;
                    if(! WebSecurity.Login(model.Nick, model.Password, persistCookie: model.RememberMe))
                    {
                        WebSecurity.CreateUserAndAccount(model.Nick, model.Password);
                        WebSecurity.Login(model.Nick, model.Password, persistCookie: model.RememberMe);
                    }
                    return RedirectToLocal(returnUrl);
                }
            }

            // Si llegamos a este punto, es que se ha producido un error y volvemos a mostrar el formulario
            ModelState.AddModelError("", "El nombre de usuario o la contraseña especificados son incorrectos.");
            return View(model);
        }
        public ActionResult seguir(int id)
        {
            SessionInitialize();

            UsuarioCAD usuarioCad = new UsuarioCAD(session);

            UsuarioEN usuarioEn = usuarioCad.GetByNick(User.Identity.Name);

            new UsuarioCEN(usuarioCad).Seguir(usuarioEn.Id, id);

            SessionClose();

            return RedirectToAction("perfil", new { id = id });
        }
        public ActionResult Perfil(int id = -1)
        {
            SessionInitialize();

            //int id = 1; // TODO poner el id a currentUser
            //int id = WebSecurity.GetUserId(User.Identity.Name);
            //UsuarioEN en = new UsuarioCAD(session).ReadOIDDefault(id);
            UsuarioEN en = null;
            UsuarioEN usuarioActualEn = new UsuarioCAD(session).GetByNick(User.Identity.Name);
            if(id==-1)
            {
                en = usuarioActualEn;
            }
            else
            {
                en = new UsuarioCAD(session).ReadOIDDefault(id);
            }

            ViewData["usuarioActual"] = (en.Nick == User.Identity.Name);

            ViewData["siguiendo"] = (usuarioActualEn.Seguidos.Contains(en));

            Usuario usuario = new AssemblerUsuario().ConvertENToModelUI(en);

            ViewData["numSeguidos"] = usuario.Seguidos.Count();
            ViewData["numSeguidores"] = usuario.Seguidores.Count();

            SessionClose();

            return View(usuario);
        }
        public ActionResult Create(ListaCompra listaCompra)
        {
            try
            {

                // Obtenemos usuario actual
                UsuarioEN usuarioEn = new UsuarioCAD().GetByNick(User.Identity.Name);

                listaCompra.Fecha = DateTime.Now;

                int id = new ListaCompraCEN().New_(listaCompra.Nombre, listaCompra.Fecha, usuarioEn.Id);

                return RedirectToAction("Index", new { id = id });
            }
            catch
            {
                return View();
            }
        }
        public ActionResult Index(int id = -1)
        {
            SessionInitialize();

            UsuarioEN usuarioEn = new UsuarioCAD(session).GetByNick(User.Identity.Name);

            IList<ListaCompra> listListaCompra = new AssemblerListaCompra().ConvertListENToModel(usuarioEn.ListasCompra).ToList();

            // Hago persistentes los datos
            foreach(ListaCompra l in listListaCompra)
                foreach (LineaListaCompraEN lin in l.LineasListaCompra)
                {
                    lin.Ingrediente.Id = lin.Ingrediente.Id;
                    lin.Ingrediente.Nombre = lin.Ingrediente.Nombre;
                }

            SessionClose();

            if(listListaCompra.Count == 0)
                ViewData["idListaActiva"] = -1;
            else if (id == -1)
                ViewData["idListaActiva"] = listListaCompra.First().Id;
            else
                ViewData["idListaActiva"] = id;

            var tuple = new Tuple<IList<ListaCompra>, LineaListaCompra>(listListaCompra, new LineaListaCompra());

            return View(tuple);
        }