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(); } }
public void PrazniFilter() { string filterString = "-----"; DokumentFilter filter = DokumentFilter.FromString(filterString); Assert.True(filter.IsEmpty()); }
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); }
public IActionResult Filter(DokumentFilter filter) { return(RedirectToAction(nameof(Index), new { filter = filter.ToString() })); }
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)); }