public List <Takmicenja> Get(TakmicenjeSearch obj)
        {
            var qry = db.Takmicenja.AsQueryable();

            if (!string.IsNullOrWhiteSpace(obj.Naziv))
            {
                qry = qry.Where(x => x.Naziv.Contains(obj.Naziv));
            }

            var TakmicenjaPovratni = qry
                                     .Include(x => x.Sistem).Include(x => x.Status)
                                     .Include(x => x.Kategorija).Include(x => x.Vrsta)
                                     .Include(x => x.Prijave)
                                     .Where(x => x.Kategorija.Opis == obj.Kategorija || obj.Kategorija == null)
                                     .Where(x => x.Vrsta.Naziv == obj.Vrsta || obj.Vrsta == null)
                                     .Where(x => x.Sistem.Opis == obj.Sistem || obj.Sistem == null)
                                     .Where(x => x.MinimalniELO == obj.MinimalniELO || obj.MinimalniELO == null)
                                     .OrderByDescending(x => x.ID).ToList();
            var povratnaLista = new List <SharedModels.Takmicenja>();

            foreach (var i in TakmicenjaPovratni)
            {
                SharedModels.Takmicenja tak = mapko.Map <SharedModels.Takmicenja>(i);
                tak.Sistem     = i.Sistem.Opis;
                tak.Kategorija = i.Kategorija.Opis;
                tak.Vrsta      = i.Vrsta.Naziv;
                tak.Status     = i.Status.Opis;
                tak.Prijave    = i.Prijave;
                povratnaLista.Add(tak);
            }
            return(povratnaLista);
        }
        private async void btnFiltriraj_Click(object sender, EventArgs e)
        {
            apiService = new APIService("takmicenja");
            TakmicenjeSearch obj = new TakmicenjeSearch
            {
                Naziv      = txtNaziv.Text,
                Kategorija = cmbKategorija.SelectedItem != null &&
                             cmbKategorija.SelectedItem.ToString() != " " ?
                             cmbKategorija.SelectedItem.ToString() : null,

                Sistem = cmbSistem.SelectedItem != null &&
                         cmbSistem.SelectedItem.ToString() != " "  ?
                         cmbSistem.SelectedItem.ToString() : null,

                Vrsta = cmbVrsta.SelectedItem != null &&
                        cmbVrsta.SelectedItem.ToString() != " " ?
                        cmbVrsta.SelectedItem.ToString() : null,
            };

            if (!string.IsNullOrEmpty(txtMinimalniELO.Text))
            {
                obj.MinimalniELO = int.Parse(txtMinimalniELO.Text);
            }

            takmicenja = await apiService.GetAll <PagedResponse <Takmicenja> >(obj);

            PrikaziPodatke();
        }
        private PagedResponse <Takmicenja> GetPagedResponse(TakmicenjeSearch obj)
        {
            var listaTakmicenja = takmicenjeService.Get(obj);
            PagedResponse <Takmicenja> respons = new PagedResponse <Takmicenja>();

            respons.TotalPageCount = (int)Math.Ceiling((double)listaTakmicenja.Count() / (double)obj.Limit);
            respons.Stavke         = listaTakmicenja.Skip((obj.Page - 1) * obj.Limit).Take(obj.Limit).ToList();

            TakmicenjeSearch iducaKlon = obj.Clone() as TakmicenjeSearch;

            iducaKlon.Page = (iducaKlon.Page + 1) > respons.TotalPageCount ? -1 : iducaKlon.Page + 1;
            String iduciUrl = iducaKlon.Page == -1 ? null : this.Url.Action("Get", null, iducaKlon, Request.Scheme);

            TakmicenjeSearch proslaKlon = obj.Clone() as TakmicenjeSearch;

            proslaKlon.Page = (proslaKlon.Page - 1) < 0 ? -1 : proslaKlon.Page - 1;
            String prosliUrl = proslaKlon.Page == -1 ? null : this.Url.Action("Get", null, proslaKlon, Request.Scheme);

            respons.IducaStranica  = !String.IsNullOrWhiteSpace(iduciUrl) ? new Uri(iduciUrl) : null;
            respons.ProslaStranica = !String.IsNullOrWhiteSpace(prosliUrl) ? new Uri(prosliUrl) : null;
            return(respons);
        }
        public PagedResponse <Takmicenja> Get([FromQuery] TakmicenjeSearch obj)
        {
            var respons = GetPagedResponse(obj);

            return(respons);
        }