Beispiel #1
0
        // ~/Folder/Index == Yfirlit texta
        public ViewResult Index(SearchViewModel svm)
        {
            string sortOrder = svm.sortOrder;
            string currentFilter = svm.currentFilter;
            string searchString = svm.searchString;
            int? page = svm.page;
            ViewBag.CatID = svm.ID;

            if (page >= 2 || (page == 1 && svm.CategoryID != 0))
            {
                ViewBag.CatID = svm.CategoryID;
            }
            int category = ViewBag.CatID;

            // Til að raða eftir nafni, dagsetningu eða flokki
            ViewBag.CurrentSort = sortOrder;
            ViewBag.NameSortParm = String.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
            ViewBag.DateSortParm = sortOrder == "date_asc" ? "date_desc" : "date_asc";
            ViewBag.CatSortParm = sortOrder == "cat_asc" ? "cat_desc" : "cat_asc";

            // Alltaf sýna síðu 1 ef það er notað leitina
            if (searchString != null)
            {
                page = 1;
            }
            else
            {
                searchString = currentFilter;
            }

            ViewBag.CurrentFilter = searchString;

            // Nær í allar möppur
            var folders = repo.GetAllFolders();

            // Leitað eftir nafni á möppu
            if (!String.IsNullOrEmpty(searchString))
            {
                folders = folders.Where(s => s.FolderName.ToUpper().Contains(searchString.ToUpper()));
            }

            // Ef það er leitað eftir flokki
            switch (category)
            {
                case 1:
                    folders = folders.Where(f => f.CategoryID == 1);
                    break;
                case 2:
                    folders = folders.Where(f => f.CategoryID == 2);
                    break;
                case 3:
                    folders = folders.Where(f => f.CategoryID == 3);
                    break;
                case 4:
                    folders = folders.Where(f => f.CategoryID == 4);
                    break;
            }

            // Raðar eftir nafni, dagsetningu eða flokki
            switch (sortOrder)
            {
                case "name_desc":
                    folders = folders.OrderByDescending(s => s.FolderName);
                    break;
                case "date_desc":
                    folders = folders.OrderByDescending(s => s.DateCreated);
                    break;
                case "date_asc":
                    folders = folders.OrderBy(s => s.DateCreated);
                    break;
                case "cat_desc":
                    folders = folders.OrderByDescending(s => s.Category.CategoryName);
                    break;
                case "cat_asc":
                    folders = folders.OrderBy(s => s.Category.CategoryName);
                    break;
                default:  // Name ascending
                    folders = folders.OrderBy(s => s.FolderName);
                    break;
            }

            // Birtir 25 texta á hverri síðu
            int pageSize = 10;
            // pageNumber er sjálfgefið 1 ef engin síða er valin
            int pageNumber = (page ?? 1);
            return View(folders.ToPagedList(pageNumber, pageSize));
        }
        // GET: /Request/
        public ViewResult Index(SearchViewModel svm)
        {
            string sortOrder = svm.sortOrder;
            string currentFilter = svm.currentFilter;
            string searchString = svm.searchString;
            int? page = svm.page;

            // Til að raða eftir nafni, dagsetningu eða atkvæðum
            ViewBag.CurrentSort = sortOrder;
            ViewBag.VoteSortParm = String.IsNullOrEmpty(sortOrder) ? "vote_asc" : "";
            ViewBag.NameSortParm = sortOrder == "name_asc" ? "name_desc" : "name_asc";
            ViewBag.DateSortParm = sortOrder == "date_asc" ? "date_desc" : "date_asc";

            // Alltaf sýna síðu 1 ef það er notað leitina
            if (searchString != null)
            {
                page = 1;
            }
            else
            {
                searchString = currentFilter;
            }

            ViewBag.CurrentFilter = searchString;

            // Nær í allar beiðnir
            var req = repo.GetAllRequests();

            // Ber leitarstrenginn saman við nöfnin og lýsingarnar á beiðnunum
            if (!String.IsNullOrEmpty(searchString))
            {
                req = req.Where(r => (r.RequestName.ToUpper().Contains(searchString.ToUpper()) || r.RequestText.ToUpper().Contains(searchString.ToUpper())));
            }
            // Raða eftir nafni, dagsetningu eða atkvæðum
            switch (sortOrder)
            {
                case "name_desc":
                    req = req.OrderByDescending(s => s.RequestName);
                    break;
                case "date_desc":
                    req = req.OrderByDescending(s => s.DateCreated);
                    break;
                case "date_asc":
                    req = req.OrderBy(s => s.DateCreated);
                    break;
                case "name_asc":
                    req = req.OrderBy(s => s.RequestName);
                    break;
                case "vote_asc":
                    req = req.OrderBy(s => s.ReqUpvoteCounter);
                    break;
                default:  // Votes descending
                    req = req.OrderByDescending(s => s.ReqUpvoteCounter);
                    break;
            }

            int pageSize = 10;
            int pageNumber = (page ?? 1);
            return View(req.ToPagedList(pageNumber, pageSize));
        }