public ActionResult Categorias()
 {
     if (Session["culture"] == null)
         Session["culture"] = "es-MX";
     IRepositorio<Categorium> repositorioCategoria = new CategoriumRepositorio();
     IList<Categorium> todasCategorias = repositorioCategoria.GetAll();
     IList<Categorium> todasCategoriasVistas = new List<Categorium>();
     IRepositorio<SubCategorium> repositorioSubcategoria = new SubCategoriumRepositorio();
     IList<SubCategorium> todasSubCategorias = repositorioSubcategoria.GetAll();
     IList<SubCategorium> listaSubCategorias = new List<SubCategorium>();
     IRepositorio<Publicacion> repositorioPublicacion = new PublicacionRepositorio();
     IList<Publicacion> listaPublicaciones = repositorioPublicacion.GetAll();
     IList<string> listaLugares = new List<string>();
     foreach (var categoria in todasCategorias)
     {
         if (categoria.Idioma == Session["culture"].ToString())
         {
             foreach (var subCategoria in todasSubCategorias)
             {
                 if (subCategoria.IdCategoria == categoria.IdCategoria)
                 {
                     foreach (var publicacion in listaPublicaciones)
                     {
                         if (publicacion.IdSubCategoria == subCategoria.IdSubCategoria)
                         {
                             if (!listaLugares.Contains(publicacion.Estado))
                                 listaLugares.Add(publicacion.Estado);
                         }
                     }
                     subCategoria.Lugares = listaLugares;
                     listaLugares = new List<string>();
                     listaSubCategorias.Add(subCategoria);
                 }
             }
             categoria.SubCategoriums = listaSubCategorias;
             listaSubCategorias = new List<SubCategorium>();
             todasCategoriasVistas.Add(categoria);
         }
     }
     return PartialView(todasCategoriasVistas);
 }
        public ActionResult Lista(int pagActual, int orden, string cat, string sub, string lug)
        {
            var myRepoPublicacion = new PublicacionRepositorio();
            var myRepoSubCat = new SubCategoriumRepositorio();
            var myRepoCat = new CategoriumRepositorio();
            var myRepoPrecio = new PrecioRepositorio();
            IList<IList<Publicacion>> listaDeLista = new List<IList<Publicacion>>();
            IList<Publicacion> listaPub = new List<Publicacion>();
            IList<Publicacion> listaPub2 = myRepoPublicacion.GetAll();
            foreach (var publicacion in listaPub2)
            {
                publicacion.SubCategorium = myRepoSubCat.GetById(publicacion.IdSubCategoria);
                if(lug!=null && sub!=null && cat!=null)
                {
                    publicacion.Categorium = myRepoCat.GetById(publicacion.SubCategorium.IdCategoria);
                    if (publicacion.SubCategorium.Nombre == sub && publicacion.Categorium.Nombre == cat && publicacion.Estado ==lug)
                        listaPub.Add(publicacion);
                }
                else
                {
                    if (sub != null && cat != null)
                    {
                        publicacion.Categorium = myRepoCat.GetById(publicacion.SubCategorium.IdCategoria);
                        if (publicacion.SubCategorium.Nombre == sub && publicacion.Categorium.Nombre == cat)
                            listaPub.Add(publicacion);
                    }else
                    {
                        if (sub != null && lug != null)
                        {
                            if (publicacion.SubCategorium.Nombre == sub && publicacion.Estado == lug)
                            listaPub.Add(publicacion);
                        }
                        else
                        {
                            if (cat != null && lug != null)
                            {
                                publicacion.Categorium = myRepoCat.GetById(publicacion.SubCategorium.IdCategoria);
                                if (publicacion.Categorium.Nombre == sub && publicacion.Estado == lug)
                                listaPub.Add(publicacion);
                            }else
                            {
                                if (sub != null)
                                {
                                    if (publicacion.SubCategorium.Nombre == sub)
                                    listaPub.Add(publicacion);
                                }
                                else
                                {
                                    if (cat != null)
                                    {
                                        publicacion.Categorium = myRepoCat.GetById(publicacion.SubCategorium.IdCategoria);
                                        if (publicacion.Categorium.Nombre == cat)
                                        listaPub.Add(publicacion);
                                    }
                                    else
                                    {
                                        if (lug != null)
                                        {
                                            if (publicacion.Estado == lug)
                                            listaPub.Add(publicacion);
                                        }
                                    }
                                }
                            }
                        }
                    }

                }

            }
            if (listaPub.Count() == 0)
            {
                ViewData["nroPaginas"] = 1;
                ViewData["pagActual"] = 1;
                ViewData["cuenta"] = 0;
                return View(new List<Publicacion>());
            }
            foreach (var publicacion in listaPub)
            {
                publicacion.Precios = new List<Precio>();
                IList<Precio> lPrecio = myRepoPrecio.GetAll();
                foreach (var precio in lPrecio)
                {
                    if (precio.IdPublicacion == publicacion.IdPublicacion)
                    {
                        publicacion.Precios.Add(precio);
                    }
                }
            }
            IOrderedEnumerable<Publicacion> lista;
            if (orden != 1)
            {
                lista =listaPub.OrderBy(model => model.Precios[0].PrecioMin);
            }else
            {
                lista =listaPub.OrderByDescending(model => model.Precios[0].PrecioMax);
            }
            listaPub=lista.ToList();
            int nroPaginas = listaPub.Count/8;
            IList<Publicacion> listaPubAux = new List<Publicacion>();
            var cont = 0;
            var cont2 = 0;
            foreach (var publicacion in listaPub)
            {
                var myRepoIma = new ImageneRepositorio();
                var listaImagen = myRepoIma.GetAll();
                foreach (var imagene in listaImagen)
                {
                    if (imagene.IdPublicacion == publicacion.IdPublicacion)
                    {
                        publicacion.Imagen = imagene;
                        break;
                    }
                }
                cont++;
                cont2++;
                if (cont < 9)
                {
                    listaPubAux.Add(publicacion);
                }
                else
                {
                    listaDeLista.Add(listaPubAux);
                    listaPubAux = new List<Publicacion>();
                    listaPubAux.Add(publicacion);
                    cont = 0;
                }
                if (cont2 == listaPub.Count && cont < 9)
                {
                    listaDeLista.Add(listaPubAux);
                }
            }
            if (pagActual <= listaDeLista.Count && pagActual > 0)
            {
                ViewData["nroPaginas"] = nroPaginas;
                ViewData["pagActual"] = pagActual;
                ViewData["cuenta"] = listaDeLista[pagActual - 1].Count;
                return View(listaDeLista[pagActual - 1]);
            }

            return View();
        }
        public ActionResult Find(string q)
        {
            IRepositorio<Publicacion> repoP = new PublicacionRepositorio();
            IList<Publicacion> Publicacions = repoP.GetAll();
            IList<Publicacion> posiblesPublicacions = Publicacions.Where(item => item.Nombre.Contains(q.ToUpper()) || item.Nombre.Contains(q.ToLower())).ToList();

            string[] pub = new string[posiblesPublicacions.Count];
            int i = 0;
            foreach (var publicacion in posiblesPublicacions)
            {
                pub[i] = publicacion.Nombre;
                i++;
            }

            return Content(string.Join("\n", pub)); ;
        }
        public ActionResult Index(string publicacion)
        {
            var myRepoPublicacion = new PublicacionRepositorio();
            var myRepoEmpresa = new EmpresaRepositorio();
            var myRepoCat = new CategoriumRepositorio();
            var myRepoSub = new SubCategoriumRepositorio();
            // Lista de todas las publicaciones
            var listaPublicacion = myRepoPublicacion.GetAll();
            if (listaPublicacion != null)
            {
                foreach (var publicacion1 in listaPublicacion)
                {
                    //asigno las foraneas de cada publicacion
                    publicacion1.Empresa = myRepoEmpresa.GetById(publicacion1.IdEmpresa);
                    publicacion1.SubCategorium = myRepoSub.GetById(publicacion1.IdSubCategoria);
                    publicacion1.SubCategorium.Categorium = myRepoCat.GetById(publicacion1.SubCategorium.IdCategoria);
                }
            }

            if (publicacion != null)
            {
                IList<Publicacion> publicacionBuscada = new List<Publicacion>();
                if (listaPublicacion != null)
                {
                    foreach (var publicacion1 in listaPublicacion)
                    {
                        if (publicacion1.Nombre == publicacion)
                        {
                            publicacionBuscada.Add(publicacion1);
                        }
                    }
                    return View(publicacionBuscada);
                }
            }

            return View(listaPublicacion);
        }
 public ActionResult Index()
 {
     var myRepoPublicacion = new PublicacionRepositorio();
     var myRepoEmpresa = new EmpresaRepositorio();
     var myRepoCat = new CategoriumRepositorio();
     var myRepoSub = new SubCategoriumRepositorio();
     // Lista de todas las publicaciones
     var listaPublicacion = myRepoPublicacion.GetAll();
     if (listaPublicacion != null)
     {
         foreach (var publicacion in listaPublicacion)
         {
             //asigno las foraneas de cada publicacion
             publicacion.Empresa = myRepoEmpresa.GetById(publicacion.IdEmpresa);
             publicacion.SubCategorium = myRepoSub.GetById(publicacion.IdSubCategoria);
             publicacion.SubCategorium.Categorium = myRepoCat.GetById(publicacion.SubCategorium.IdCategoria);
         }
     }
     return View(listaPublicacion);
 }