Пример #1
0
        public ActionResult PreguntasManager(int?id, int?respuestaID)
        {
            var viewModel = new PreguntasManager();

            viewModel.preguntas = db.Pregunta
                                  .Include(i => i.Categoria);
            return(View(viewModel));
        }
Пример #2
0
        public ActionResult Inicio(string categoria, string buscar, string ordenar, int pagina = 1)
        {
            ViewBag.NameSortParam = String.IsNullOrEmpty(ordenar);

            var viewModel = new PreguntasManager();
            var pregBase  = (from c in db.Pregunta
                             .Include(i => i.Categoria)
                             .Include(i => i.Usuario)
                             .Include(i => i.Respuestas)
                             select c).ToList();

            if (categoria != null) //Si escoge categoría
            {
                var cantidadRegistrosPorPagina = 10;
                var totalRegistros             = db.Pregunta.Count();
                var NombreCategoria            = categoria;
                var registros = (from c in pregBase
                                 where c.Categoria.NombreCategoria == categoria
                                 select c).ToList();
                var registrosCategoria = registros.Count();
                viewModel.RegistrosCategoria = registrosCategoria;
                viewModel.preguntas          = registros.OrderBy(x => x.Fechapregunta)
                                               .Skip((pagina - 1) * cantidadRegistrosPorPagina)
                                               .Take(cantidadRegistrosPorPagina);

                var totalpaginas = (int)Math.Ceiling((double)totalRegistros / cantidadRegistrosPorPagina);
                viewModel.PaginaActual       = pagina;
                viewModel.TotalRegistros     = registrosCategoria;
                viewModel.TotalPaginas       = totalpaginas;
                viewModel.RegistrosPorPagina = cantidadRegistrosPorPagina;

                ViewData["categoria"] = categoria;
            }
            else//Inicio todas las categorias
            {
                var cantidadRegistrosPorPagina = 20;
                var totalRegistros             = db.Pregunta.Count();
                var NombreCategoria            = categoria;
                viewModel.preguntas = pregBase.OrderBy(x => Guid.NewGuid())
                                      .Skip((pagina - 1) * cantidadRegistrosPorPagina)
                                      .Take(cantidadRegistrosPorPagina);

                var totalpaginas = (int)Math.Ceiling((double)totalRegistros / cantidadRegistrosPorPagina);
                viewModel.PaginaActual       = pagina;
                viewModel.TotalRegistros     = totalRegistros;
                viewModel.TotalPaginas       = totalpaginas;
                viewModel.RegistrosPorPagina = cantidadRegistrosPorPagina;
                ViewData["categoria"]        = "Todas";
            }
            viewModel.categorias = db.Categoria.ToList();
            //ViewBag.categorias = (from c in db.Categoria select c).ToList();

            switch (ordenar)
            {
            case "categoria":
                viewModel.preguntas = viewModel.preguntas.OrderBy(s => s.Categoria.NombreCategoria);
                break;

            case "antiguos":
                viewModel.preguntas = viewModel.preguntas.OrderBy(s => s.Fechapregunta);
                break;

            case "Date":
                viewModel.preguntas = viewModel.preguntas.OrderByDescending(s => s.Fechapregunta);
                break;

            case "titulo":
                viewModel.preguntas = viewModel.preguntas.OrderBy(s => s.TituloPregunta);
                break;

            default:
                viewModel.preguntas = viewModel.preguntas;

                break;
            }

            using (db)
            {
                if (!string.IsNullOrEmpty(buscar))
                {
                    if (categoria != null)
                    {
                        foreach (var item in buscar.Split(new char[] { ' ' },
                                                          StringSplitOptions.RemoveEmptyEntries))
                        {
                            viewModel.preguntas = viewModel.preguntas.Where(x => x.Categoria.NombreCategoria.ToString() == categoria && x.TituloPregunta.ToLower().Contains(item.ToLower()) ||
                                                                            x.DescPregunta.ToLower().Contains(item.ToLower())).ToList();
                        }
                    }
                    else //if (!string.IsNullOrEmpty(buscar) )
                    {
                        foreach (var item in buscar.Split(new char[] { ' ' },
                                                          StringSplitOptions.RemoveEmptyEntries))
                        {
                            viewModel.preguntas = viewModel.preguntas.Where(x => x.TituloPregunta.ToLower().Contains(item.ToLower()) ||
                                                                            x.DescPregunta.ToLower().Contains(item.ToLower()) ||
                                                                            x.Categoria.NombreCategoria.ToLower().Contains(item.ToLower()))
                                                  .ToList();
                        }
                    }
                }

                return(View(viewModel));
            }
        }