Пример #1
0
        private void SetPreviousAndNext(int position, string filter, int sort, bool ascending)
        {
            var query = ctx.ViewDokumentInfo.AsNoTracking()
                        .FromSql(Constants.SqlViewDokumenti);

            DokumentFilter df = new DokumentFilter();

            if (!string.IsNullOrWhiteSpace(filter))
            {
                df = DokumentFilter.FromString(filter);
                if (!df.IsEmpty())
                {
                    query = df.Apply(query);
                }
            }

            query = ApplySort(sort, ascending, query);
            if (position > 0)
            {
                ViewBag.Previous = query.Skip(position - 1).Take(1).Select(d => d.IdDokumenta).First();
            }
            if (position < query.Count() - 1) //TO DO prenesi Count kao parametar
            {
                ViewBag.Next = query.Skip(position + 1).Take(1).Select(d => d.IdDokumenta).First();
            }
        }
Пример #2
0
        public void PrazniFilter()
        {
            string         filterString = "-----";
            DokumentFilter filter       = DokumentFilter.FromString(filterString);

            Assert.True(filter.IsEmpty());
        }
Пример #3
0
        public void DobroFormiranString()
        {
            DokumentFilter filter = new DokumentFilter();

            filter.IdPartnera  = 1;
            filter.IznosOd     = 300;
            filter.IznosDo     = 500;
            filter.NazPartnera = "Nebitno";
            filter.DatumOd     = new DateTime(1911, 2, 13, 9, 15, 0);
            filter.DatumDo     = new DateTime(2011, 2, 13, 20, 15, 0);
            string filterString = filter.ToString();
            string expected     = "1-13.02.1911-13.02.2011-300-500";

            Assert.Equal(expected, filterString);
        }
Пример #4
0
 public IActionResult Filter(DokumentFilter filter)
 {
     return(RedirectToAction(nameof(Index), new { filter = filter.ToString() }));
 }
Пример #5
0
        public IActionResult Index(string filter, int page = 1, int sort = 1, bool ascending = true)
        {
            int pagesize = appData.PageSize;

            var query = ctx.ViewDokumentInfo.AsNoTracking()
                        .FromSql(Constants.SqlViewDokumenti);

            DokumentFilter df = new DokumentFilter();

            if (!string.IsNullOrWhiteSpace(filter))
            {
                df = DokumentFilter.FromString(filter);
                if (!df.IsEmpty())
                {
                    if (df.IdPartnera.HasValue)
                    {
                        df.NazPartnera = ctx.vw_Partner
                                         .Where(p => p.IdPartnera == df.IdPartnera)
                                         .Select(vp => vp.Naziv)
                                         .FirstOrDefault();
                    }
                    query = df.Apply(query);
                }
            }

            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.TotalPages, sort = sort, ascending = ascending }));
            }

            query = ApplySort(sort, ascending, query);

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

            for (int i = 0; i < dokumenti.Count; i++)
            {
                dokumenti[i].Position = (page - 1) * pagesize + i;
            }
            var model = new DokumentiViewModel
            {
                Dokumenti  = dokumenti,
                PagingInfo = pagingInfo,
                Filter     = df
            };

            return(View(model));
        }