// GET: Osoba public IActionResult Index(int page = 1, int sort = 1, bool ascending = true) { int pagesize = appData.PageSize; var query = _context.Vw_Osoba .AsNoTracking(); int count = query.Count(); if (count == 0) { TempData[Constants.Message] = "Ne postoji niti jedana osoba."; TempData[Constants.ErrorOccurred] = false; return(RedirectToAction(nameof(Create))); } var pagingInfo = new PagingInfo { CurrentPage = page, Sort = sort, Ascending = ascending, ItemsPerPage = pagesize, TotalItems = count }; if (page > pagingInfo.TotalPages) { return(RedirectToAction(nameof(Index), new { page = pagingInfo.TotalPages, sort = sort, ascending = ascending })); } System.Linq.Expressions.Expression <Func <ViewOsoba, object> > orderSelector = null; switch (sort) { case 1: orderSelector = d => d.Ime; break; case 2: orderSelector = d => d.Prezime; break; case 3: orderSelector = d => d.God_rodjenja; break; case 4: orderSelector = d => d.NazivCertifikata; break; case 5: orderSelector = d => d.NazivZanimanja; break; } if (orderSelector != null) { query = ascending ? query.OrderBy(orderSelector) : query.OrderByDescending(orderSelector); } var herbar = query .Skip((page - 1) * pagesize) .FromSql("Select * FROM dbo.Vw_Osoba") .Take(pagesize) .ToList(); var model = new OsobeViewModel { Osoba = herbar, PagingInfo = pagingInfo }; return(View(model)); }
/// <summary> /// Metoda koja služi za tablični prikaz osoba u bazi podataka /// </summary> /// <param name="page"></param> /// <param name="sort"></param> /// <param name="ascending"></param> /// <returns></returns> public IActionResult Index(int page = 1, int sort = 1, bool ascending = true) { int pagesize = appSettings.PageSize; var query = ctx.Osoba.AsNoTracking(); int count = query.Count(); var pagingInfo = new PagingInfo { CurrentPage = page, Sort = sort, Ascending = ascending, ItemsPerPage = pagesize, TotalItems = count }; if (page > pagingInfo.TotalPages) { return(RedirectToAction(nameof(Index), new { page = pagingInfo.TotalItems, sort, ascending })); } System.Linq.Expressions.Expression <Func <Osoba, object> > orderSelector = null; switch (sort) { case 1: orderSelector = o => o.IdentifikacijskiBroj; break; case 2: orderSelector = o => o.Ime; break; case 3: orderSelector = o => o.Prezime; break; case 4: orderSelector = o => o.Adresa; break; case 5: orderSelector = o => o.DatRod; break; case 6: orderSelector = o => o.Zanimanje; break; } if (orderSelector != null) { query = ascending ? query.OrderBy(orderSelector) : query.OrderByDescending(orderSelector); } var osobe = query .Skip((page - 1) * pagesize) .Take(pagesize) .ToList(); var model = new OsobeViewModel { Osobe = osobe, PagingInfo = pagingInfo }; return(View(model)); }