public ActionResult Create(SubCategorium subCategorium)
        {
            IRepositorio<Categorium> myRepoCategorium = new CategoriumRepositorio();

            try
            {

                IList<Categorium> listaCategoriums = myRepoCategorium.GetAll();
                foreach (var listaCategorium in listaCategoriums)
                {
                    if (listaCategorium.Nombre == subCategorium.Categorium.Nombre)
                    {
                        subCategorium.IdCategoria = listaCategorium.IdCategoria;
                    }

                }
                IRepositorio<SubCategorium> myRepoSubCategorium = new SubCategoriumRepositorio();
                myRepoSubCategorium.Save(subCategorium);
                return RedirectToAction("Index");
            }
            catch
            {
                IList<Categorium> listaCategoriums = myRepoCategorium.GetAll();
            IList<String> nombresCat = listaCategoriums.Select(listaCategorium => listaCategorium.Nombre).ToList();
            ViewData["SubCategorium.Categorium.Nombre"] = new SelectList(nombresCat);
            IEnumerable<string> items = new string[] { "en-US", "es-MX" };
            ViewData["SubCategorium.Idioma"] = new SelectList(items);
                return View(subCategorium);
            }
        }
 public ActionResult Delete(int id)
 {
     try
     {
         IRepositorio<SubCategorium> myRepoSubCategorium = new SubCategoriumRepositorio();
         myRepoSubCategorium.Delete(myRepoSubCategorium.GetById(id));
         return RedirectToAction("Index");
     }
     catch
     {
         return RedirectToAction("Index");
     }
 }
 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 Find(string q)
        {
            IRepositorio<SubCategorium> repoS = new SubCategoriumRepositorio();
            IList<SubCategorium> subCategoriums = repoS.GetAll();
            IList<SubCategorium> posiblesCategorias = new List<SubCategorium>();

            foreach (var item in subCategoriums)
            {
                if (item.Nombre.Contains(q.ToUpper()) || item.Nombre.Contains(q.ToLower()))
                {
                    posiblesCategorias.Add(item);
                }
            }
            string[] emp = new string[posiblesCategorias.Count];
            int i = 0;
            foreach (var categoria in posiblesCategorias)
            {
                emp[i] = categoria.Nombre;
                i++;
            }

            return Content(string.Join("\n", emp)); ;
        }
 public ActionResult Index(string subcategoria)
 {
     IRepositorio<SubCategorium> myRepoSubCategorium = new SubCategoriumRepositorio();
     IList<SubCategorium> listaSubCategoriums = myRepoSubCategorium.GetAll();
     IRepositorio<Categorium> myRepoCategorium = new CategoriumRepositorio();
     Categorium listaCategoriums;
     foreach (var SubCategoriumDelist in listaSubCategoriums)
     {
         SubCategoriumDelist.Categorium = myRepoCategorium.GetById(SubCategoriumDelist.IdCategoria);
     }
     IList<SubCategorium> subCategoriumsBuscadas = new List<SubCategorium>();
     if (subcategoria != null)
     {
         foreach (var subCategorium in listaSubCategoriums)
         {
             if (subCategorium.Nombre == subcategoria)
             {
                 subCategoriumsBuscadas.Add(subCategorium);
             }
         }
         return View(subCategoriumsBuscadas);
     }
     return View(listaSubCategoriums);
 }
 public ActionResult Edit(int id)
 {
     IRepositorio<SubCategorium> myRepoSubCategorium = new SubCategoriumRepositorio();
     return View(myRepoSubCategorium.GetById(id));
 }
 public ActionResult Edit(int id,int idCat, SubCategorium subCategorium)
 {
     try
     {
         IRepositorio<SubCategorium> myRepoSubCategorium = new SubCategoriumRepositorio();
         subCategorium.IdSubCategoria = id;
         subCategorium.IdCategoria = idCat;
         myRepoSubCategorium.Update(subCategorium);
         return RedirectToAction("Index");
     }
     catch (Exception O)
     {
         return View();
     }
 }
        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();
        }
        protected override void Initialize(RequestContext requestContext)
        {
            var items3 = new List<string>();
            IRepositorio<Lugar> repoMarca = new LugarRepositorio();
            IList<Lugar> query = repoMarca.GetAll();
            items3.Add("--Seleccione--");
            foreach (var lugar in query)
            {
                if (lugar.Tipo == "Pais")
                {
                    items3.Add(lugar.Nombre);
                }

            }
            ViewData["Pais"] = new SelectList(items3);
            IEnumerable<string> items2 = new string[] { "--Seleccione--" };
            ViewData["Estado"] = new SelectList(items2);
            IEnumerable<string> items4 = new string[] { "--Seleccione--" };
            ViewData["Ciudad"] = new SelectList(items4);
            var repoSubCat = new SubCategoriumRepositorio();
            var repoCat = new CategoriumRepositorio();
            //Lista de Subcategoria para las publicaciones
            var miLista = repoSubCat.GetAll();
            if (miLista != null)
            {
                var items = (from subCategorium in miLista
                             let miCategorium = repoCat.GetById(subCategorium.IdCategoria)
                             select miCategorium.Nombre + " - " + subCategorium.Nombre).ToList();

                ViewData["SubCategorium.Nombre"] = new SelectList(items);
            }
            //Lista de Categoria de la publicacion
            var itemsCategoria = new List<string>
                                               {
                                                   "1 Estrella",
                                                   "2 Estrellas",
                                                   "3 Estrellas",
                                                   "4 Estrellas",
                                                   "5 Estrellas",
                                                   "Otra"
                                               };
            ViewData["Idioma[0].Categoria"] = new SelectList(itemsCategoria);
            var itemsPrecio = new List<string>
                                               {
                                                   "Bs.",
                                                   "$",
                                                   "€",
                                                   "£",
                                                   "¥"
                                               };
            ViewData["Precios[0].Moneda"] = new SelectList(itemsPrecio);
            ViewData["Precios[1].Moneda"] = new SelectList(itemsPrecio);
            //Lista de Servicios Para la Publiacion
            var repoServ = new ServicioRepositorio();
            var servicios = repoServ.GetAll();
            var itemsCategoria3 = new List<string>();
            var itemsCategoria2 = new List<string>();
            foreach (var servicio in servicios)
            {
                if (servicio.Idioma.CompareTo("es-MX") == 0)
                {
                    itemsCategoria3.Add(servicio.Nombre);
                    itemsCategoria2.Add(servicio.IdServicio.ToString());
                }
            }

            ViewData["Servicios-Es"] = itemsCategoria3;
            ViewData["Servicios-Es-id"] = itemsCategoria2;

            itemsCategoria3 = new List<string>();
            itemsCategoria2 = new List<string>();
            foreach (var servicio in servicios)
            {
                if (servicio.Idioma.CompareTo("en-US") == 0)
                {
                    itemsCategoria3.Add(servicio.Nombre);
                    itemsCategoria2.Add(servicio.IdServicio.ToString());
                }
            }

            ViewData["Servicios-En"] = itemsCategoria3;
            ViewData["Servicios-En-id"] = itemsCategoria2;
            base.Initialize(requestContext);
        }
        public ActionResult Create(Publicacion p,FormCollection collection)
        {
            //Empresa
            var nombreEmpresa = collection[0];
            var repoEmp = new EmpresaRepositorio();
            var listaEmp = repoEmp.GetAll();
            foreach (var empresa in listaEmp.Where(empresa => empresa.Nombre == nombreEmpresa))
            {
                p.IdEmpresa = empresa.IdEmpresa;
            }
            if (String.IsNullOrEmpty(nombreEmpresa) || p.IdEmpresa == 0)
            {
                ModelState.AddModelError("NombreE", "Nombre Empresa es Necesario");
                return View(p);
            }
            if (String.IsNullOrEmpty(p.Pais) || p.Pais.CompareTo("--Seleccione--")==0)
            {
                ModelState.AddModelError("Pais", "Pais es Necesario");
                return View(p);
            }
            if (String.IsNullOrEmpty(p.Estado) || p.Estado.CompareTo("--Seleccione--") == 0)
            {
                ModelState.AddModelError("Estado", "Estado es Necesario");
                return View(p);
            }
            if (String.IsNullOrEmpty(p.Ciudad) || p.Ciudad.CompareTo("--Seleccione--") == 0)
            {
                ModelState.AddModelError("Ciudad", "Ciudad es Necesario");
                return View(p);
            }

            //fin Empresa
            //Sub Categoria
            var repoSub = new SubCategoriumRepositorio();
            var listaSub = repoSub.GetAll();
            var subCategorias = p.SubCategorium.Nombre.Split('-');
            var subCategoria = "";
            subCategoria = subCategorias[1].Substring(1);
            p.SubCategorium = new SubCategorium();
            foreach (var subCategorium in listaSub.Where(subCategorium => subCategorium.Nombre == subCategoria))
            {
                p.IdSubCategoria = subCategorium.IdSubCategoria;
            }
            //fin Sub Categoria
            var repoPubli = new PublicacionRepositorio();
            IList<Idioma> myIdiomas = p.Idioma;
            p.Idioma = null;
            var repoLug = new LugarRepositorio();
            p.Ciudad = repoLug.GetById(Convert.ToInt32(p.Ciudad)).Nombre;
            p.Estado = repoLug.GetById(Convert.ToInt32(p.Estado)).Nombre;
            var idPublicacion = repoPubli.Save(p);

            //Precios
            IList<Precio> listaPrecios = p.Precios;
            var repoPrecios = new PrecioRepositorio();
            foreach (var precio in listaPrecios)
            {
                precio.IdPublicacion = idPublicacion;
                repoPrecios.Save(precio);
            }

            //fin Precios
            p.Idioma = myIdiomas;
            //Servicios
            if (p.Servicios != null){
                var misServicios = new List<Servicio>(p.Servicios);
                foreach (var misServicio in misServicios)
                {
                    if (misServicio.IdServicio == 0) continue;
                    var pB = new PublicacionServicio
                                 {
                                     IdPublicacion = idPublicacion,
                                     IdServicio = misServicio.IdServicio
                                 };
                    var repoPubSer = new PublicacionServicioRepositorio();
                    repoPubSer.Save(pB);
                }
            }

            //fin Servicios
            //Idioma
            var repoIdioma = new IdiomaRepositorio();
            var idioma = p.Idioma[0];
            idioma.IdPublicacion = idPublicacion;
            if(p.Idioma[0].Categoria != "Otra")
            {
                p.Idioma[0].Categoria.Substring(0, 1);
               repoIdioma.Save(idioma);
            }
            else
            {
                idioma.Categoria = p.Idioma[1].Categoria;
                repoIdioma.Save(idioma);
            }
            //fin Idioma
            //Session para las fotos
            Session["IdPublicacion"] = idPublicacion;

               return RedirectToAction("Upload");
        }
        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);
        }
        //
        // GET: /Publicacion/Details/5
        public ActionResult Details(int id)
        {
            var myRepoPublicacion = new PublicacionRepositorio();
            var myRepoImagene = new ImageneRepositorio();
            var myRepoServicioP = new PublicacionServicioRepositorio();
            var myRepoCat = new CategoriumRepositorio();
            var myRepoSubCat = new SubCategoriumRepositorio();
            var myRepoEmpresa = new EmpresaRepositorio();
            var myRepoServicio = new ServicioRepositorio();
            var myRepoIdioma = new IdiomaRepositorio();
            var myRepoPrecio = new PrecioRepositorio();
            var p = myRepoPublicacion.GetById(id);
            if (p != null)
            {
                var listaImagenes = myRepoImagene.GetAll();
                var listaImagenesAux = listaImagenes.Where(imagene => imagene.IdPublicacion == id).ToList();
                p.Imagenes = listaImagenesAux;
                var listaIdioma = myRepoIdioma.GetAll();
                if (listaIdioma!=null)
                {
                    p.Idioma = new List<Idioma>();
                    foreach (var idioma in listaIdioma.Where(idioma => idioma.IdPublicacion == id))
                    {
                        p.Idioma.Add(idioma);
                    }
                }

                var listaServicio = myRepoServicioP.GetAll();
                if (listaServicio != null)
                {
                    p.Servicios = new List<Servicio>();
                    foreach (var servicio in listaServicio.Where(servicio => servicio.IdPublicacion == id))
                    {
                        p.Servicios.Add(myRepoServicio.GetById(servicio.IdServicio));
                    }
                }
                p.Empresa = myRepoEmpresa.GetById(p.IdEmpresa);
                p.SubCategorium = myRepoSubCat.GetById(p.IdSubCategoria);
                p.Categorium = myRepoCat.GetById(p.SubCategorium.IdCategoria);
                var listaPrecios = myRepoPrecio.GetAll();
                p.Precios = listaPrecios.Where(listaPrecio => listaPrecio.IdPublicacion == id).ToList();
                p.Reservacion = p.Reservacion == "S" ? "Si" : "No";
                if (p.Idioma[0].Categoria.CompareTo("1 Estrella") == 0 || p.Idioma[0].Categoria.CompareTo("2 Estrellas") == 0 || p.Idioma[0].Categoria.CompareTo("3 Estrellas") == 0 || p.Idioma[0].Categoria.CompareTo("4 Estrellas") == 0 || p.Idioma[0].Categoria.CompareTo("5 Estrellas") == 0)
                {
                    p.Idioma[0].Categoria = p.Idioma[0].Categoria.Substring(0, 1);

                }else
                {
                    p.Idioma.Add(new Idioma { Categoria = p.Idioma[0].Categoria });
                    p.Idioma[0].Categoria = "0";
                }

                return View(p);
            }
            return RedirectToAction("Index");
        }
 public ActionResult Index()
 {
     IRepositorio<SubCategorium> myRepoSubCategorium = new SubCategoriumRepositorio();
     IList<SubCategorium> listaSubCategoriums = myRepoSubCategorium.GetAll();
     IRepositorio<Categorium> myRepoCategorium = new CategoriumRepositorio();
     Categorium listaCategoriums;
     foreach (var SubCategoriumDelist in listaSubCategoriums)
     {
         SubCategoriumDelist.Categorium = myRepoCategorium.GetById(SubCategoriumDelist.IdCategoria);
     }
     return View(listaSubCategoriums);
 }
 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);
 }