Esempio n. 1
0
        // 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));
        }
Esempio n. 2
0
        /// <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));
        }