Ejemplo n.º 1
0
        public IActionResult Index(string filter, int page = 1, int sort = 1, bool ascending = true)
        {
            int pagesize = appSettings.PageSize;
            var query    = ctx.Certifikati.AsQueryable();

            CertifikatiFilter cf = new CertifikatiFilter();

            if (!string.IsNullOrWhiteSpace(filter))
            {
                cf = CertifikatiFilter.FromString(filter);
                if (!cf.IsEmpty())
                {
                    if (cf.Id.HasValue)
                    {
                        cf.Naziv = ctx.Certifikati
                                   .Where(c => c.Id == c.Id)
                                   .Select(c => c.Naziv)
                                   .FirstOrDefault();
                    }
                    query = cf.Apply(query);
                }
            }

            int count = query.Count();

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

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

            query = ApplySort(sort, ascending, query);


            var certifikati = query
                              .Skip((page - 1) * pagesize)
                              .Take(pagesize)
                              .ToList();

            var model = new CertifikatiViewModel {
                certifikati = certifikati,
                PagingInfo  = pagingInfo,
                Filter      = cf
            };

            return(View(model));
        }
Ejemplo n.º 2
0
 public IActionResult Filter(CertifikatiFilter filter)
 {
     return(RedirectToAction(nameof(Index), new { filter = filter.ToString() }));
 }