コード例 #1
0
        // GET: Posoa
        public IActionResult Index(int page = 1, int sort = 1, bool ascending = true)
        {
            int pagesize = appData.PageSize;

            var query = _context.Vw_Posao

                        .AsNoTracking();

            int count = query.Count();

            if (count == 0)
            {
                TempData[Constants.Message]       = "Ne postoji niti jedan posao.";
                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 <ViewPosao, object> > orderSelector = null;

            switch (sort)
            {
            case 1:
                orderSelector = d => d.PosaoId;
                break;
            }
            if (orderSelector != null)
            {
                query = ascending ?
                        query.OrderBy(orderSelector) :
                        query.OrderByDescending(orderSelector);
            }

            var posao = query
                        .Skip((page - 1) * pagesize)
                        .FromSql("Select * FROM dbo.Vw_Posao")
                        .Take(pagesize)
                        .ToList();
            var model = new PosloviViewModel
            {
                Posao      = posao,
                PagingInfo = pagingInfo
            };

            return(View(model));
        }
コード例 #2
0
        //public IActionResult Index()
        //{
        //  var drzave = ctx.Drzava
        //                  .AsNoTracking()
        //                  .OrderBy(d => d.NazDrzave)
        //                  .ToList();
        //  return View("IndexSimple", drzave);
        //}


        public IActionResult Index(int page = 1, int sort = 1, bool ascending = true)
        {
            int pagesize = appData.PageSize;

            var query = ctx.Posao
                        .AsNoTracking();


            int count = query.Count();

            if (count == 0)
            {
                logger.LogInformation("Ne postoji nijedna država");
                TempData[Constants.Message]       = "Ne postoji niti jedna država.";
                TempData[Constants.ErrorOccurred] = false;
                return(RedirectToAction(nameof(Create)));
            }

            var pagingInfo = new ViewModels.PagingInfo
            {
                CurrentPage  = page,
                Sort         = sort,
                Ascending    = ascending,
                ItemsPerPage = pagesize,
                TotalItems   = count
            };

            if (page < 1)
            {
                page = 1;
            }
            else if (page > pagingInfo.TotalPages)
            {
                return(RedirectToAction(nameof(Index), new { page = pagingInfo.TotalPages, sort, ascending }));
            }

            System.Linq.Expressions.Expression <Func <Posao, object> > orderSelector = null;
            switch (sort)
            {
            case 1:
                orderSelector = d => d.Id;
                break;

            case 2:
                orderSelector = d => d.UslugaId;
                break;

            case 3:
                orderSelector = d => d.Cijena;
                break;

            case 4:
                orderSelector = d => d.Troskovi;
                break;
            }
            if (orderSelector != null)
            {
                query = ascending ?
                        query.OrderBy(orderSelector) :
                        query.OrderByDescending(orderSelector);
            }
            var poslovi = query.Select(p => new PosaoViewModel
            {
                Id          = p.Id,
                Vrijeme     = p.Vrijeme,
                UslugaNaziv = p.UslugaNavigation.Naziv,
                MjestoNaziv = p.MjestoNavigation.Naziv,
                Cijena      = p.Cijena,
                Troskovi    = p.Troskovi
            })
                          .Skip((page - 1) * pagesize)
                          .Take(pagesize)
                          .ToList();
            var model = new PosloviViewModel
            {
                Poslovi    = poslovi,
                PagingInfo = pagingInfo
            };

            return(View(model));
        }
コード例 #3
0
        public IActionResult Index(int page = 1, int sort = 1, bool ascending = true)  //preslikva link koji pokazuje kada ucitamo određenu stranicu, ako nedostaje neki od podataka ovaj se broj uzima
        {
            int pagesize = appSettings.PageSize;
            var query    = ctx.Poslovi //upit na bazu
                           .AsNoTracking();
            int count = query.Count(); //broj zapisa

            if (count == 0)
            {
                logger.LogInformation("Ne postoji nijedan posao");
                TempData[Constants.Message]       = "Ne postoji niti jedan posao";
                TempData[Constants.ErrorOccurred] = false;
                return(RedirectToAction(nameof(Create)));
            }



            System.Linq.Expressions.Expression <Func <Poslovi, object> > orderSelector = null;
            switch (sort)
            {
            case 1:
                orderSelector = d => d.IdPoslovi;
                break;

            case 2:
                orderSelector = d => d.Naziv;
                break;

            case 3:
                orderSelector = d => d.Mjesto;
                break;

            case 4:
                orderSelector = d => d.IdNatječajiNavigation.Naziv;
                break;

            case 5:
                orderSelector = d => d.IdUslugeNavigation.NazivUsluge;
                break;

            case 6:
                orderSelector = d => d.VrijemeTrajanja;
                break;
            }
            if (orderSelector != null)
            {
                query = ascending ?     //određuje je li order bi uzlazno ili silazno
                        query.OrderBy(orderSelector) :
                        query.OrderByDescending(orderSelector);
            }
            var poslovi = query
                          .Select(m => new PosaoViewModel
            {
                IdPoslovi       = m.IdPoslovi,
                Naziv           = m.Naziv,
                Mjesto          = m.Mjesto,
                NazivNatječaja  = m.IdNatječajiNavigation.Naziv,
                NazivUsluge     = m.IdUslugeNavigation.NazivUsluge,
                VrijemeTrajanja = m.VrijemeTrajanja
            })
                          .Skip((page - 1) * pagesize) //  koliko podataka preskočiti, na 7.str. preskočit ćemo 6*vel.stranice
                          .Take(pagesize)              //dohvaćamo elemente
                          .ToList();                   //dobijemo listu
            var pagingInfo = new PagingInfo            //ujedinjujemo sve informacije koje smo primili sa strane
            {
                CurrentPage  = page,
                Sort         = sort,
                Ascending    = ascending,
                ItemsPerPage = pagesize,
                TotalItems   = count
            };

            if (page < 1)
            {
                page = 1;
            }
            else if (page > pagingInfo.TotalPages)                                                              //kada korisnik dode do zadnje stranice, radimo redirekcija na neku akciju-referencirat ćemo se na imena metoda nameof nam osigurava da se promjenom imena ne naruši ova stranica (prilikom kompajliranja javlja grešku ili otkrije stranicu)
            {
                return(RedirectToAction(nameof(Index), new { page = pagingInfo.TotalPages, sort, ascending })); //new-anonimna klasa, formira se link na novu akciju
            }
            var model = new PosloviViewModel
            {
                Poslovi    = poslovi,
                PagingInfo = pagingInfo
            };

            return(View(model));
        }