public IActionResult Index(PrikaziBiciklaZaIznajmitiVM VM)
        {
            PrikaziBiciklaZaIznajmitiVM Model = new PrikaziBiciklaZaIznajmitiVM
            {
                Proizvodjaci = db.Proizvodjac
                               .Where(x => x.IsDeleted == false).ToList(),
                Stanja         = Enum.GetValues(typeof(Stanje)).Cast <Stanje>().Where(x => x == Stanje.Korišteno).ToList(),
                VelicineOkvira = db.VelicinaOkvira
                                 .Where(x => x.IsDeleted == false).ToList(),
                StarosneGrupe = db.StarosnaGrupa
                                .Where(x => x.IsDeleted == false).ToList(),
                SpoloviBicikla   = Enum.GetValues(typeof(SpolBicikl)).Cast <SpolBicikl>().ToList(),
                Tipovi           = Enum.GetValues(typeof(Tip)).Cast <Tip>().ToList(),
                MaterijaliOkvira = db.MaterijalOkvira
                                   .Where(x => x.IsDeleted == false).ToList(),
                Suspenzije = Enum.GetValues(typeof(Suspenzija)).Cast <Suspenzija>().ToList(),
                Brzine     = db.Modeli.Where(x => x.IsDeleted == false).Select(x => x.Brzina).Distinct().ToList(),
                Boje       = db.Boja.ToList(),

                Stanje = VM.Stanje
            };

            return(View(Model));
        }
        public ActionResult UcitajListuBicikalaZaIznajmiti(PrikaziBiciklaZaIznajmitiVM VM)
        {
            PrikaziBiciklaZaIznajmitiVM Model = new PrikaziBiciklaZaIznajmitiVM();

            IQueryable <Bicikl> BiciklaQry = db.Bicikl
                                             .Where(x => x.Aktivan)
                                             .Where(x => x.Stanje == Stanje.Korišteno);

            if (VM.ProizvodjacId != null)
            {
                BiciklaQry = BiciklaQry.Where(x => VM.ProizvodjacId.Contains(x.Model.ProizvodjacId));
            }

            if (VM.BojaId != null)
            {
                BiciklaQry = BiciklaQry.Where(x => VM.BojaId.Contains(x.BojaId));
            }


            if (VM.NoznaKocnica != null && VM.NoznaKocnica != -1)
            {
                BiciklaQry = BiciklaQry.Where(x => x.NoznaKocnica == (VM.NoznaKocnica.Value == 0 ? false : true));
            }

            if (VM.VelicinaOkviraId != null)
            {
                BiciklaQry = BiciklaQry.Where(x => VM.VelicinaOkviraId.Contains(x.VelicinaOkviraId));
            }

            if (VM.SpolBicikla != null)
            {
                List <SpolBicikl> TrazeniSpolovi = new List <SpolBicikl>();

                foreach (SpolBicikl spol in Enum.GetValues(typeof(SpolBicikl)))
                {
                    foreach (string odabraniSpol in VM.SpolBicikla)
                    {
                        if (Enum.GetName(typeof(SpolBicikl), spol) == odabraniSpol)
                        {
                            TrazeniSpolovi.Add(spol);
                        }
                    }
                }

                BiciklaQry = BiciklaQry.Where(x => TrazeniSpolovi.Contains(x.Model.SpolBicikl));
            }
            if (VM.StarosnaGrupaId != null)
            {
                BiciklaQry = BiciklaQry.Where(x => VM.StarosnaGrupaId.Contains(x.StarosnaGrupaId));
            }

            if (VM.Tip != null)
            {
                List <Tip> TrazeniSpolovi = new List <Tip>();

                foreach (Tip spol in Enum.GetValues(typeof(Tip)))
                {
                    foreach (string odabraniSpol in VM.Tip)
                    {
                        if (Enum.GetName(typeof(Tip), spol) == odabraniSpol)
                        {
                            TrazeniSpolovi.Add(spol);
                        }
                    }
                }

                BiciklaQry = BiciklaQry.Where(x => TrazeniSpolovi.Contains(x.Model.Tip));
            }
            if (VM.MaterijalOkviraId != null)
            {
                BiciklaQry = BiciklaQry.Where(x => VM.MaterijalOkviraId.Contains(x.Model.MaterijalOkviraId));
            }

            if (VM.Suspenzija != null && VM.Suspenzija != -1)
            {
                List <Suspenzija> TrazenaStanja = new List <Suspenzija>();

                foreach (Suspenzija stanje in Enum.GetValues(typeof(Suspenzija)))
                {
                    if ((int)stanje == VM.Suspenzija.Value)
                    {
                        TrazenaStanja.Add(stanje);
                    }
                }

                BiciklaQry = BiciklaQry.Where(x => TrazenaStanja.Contains(x.Model.Suspenzija));
            }


            if (VM.Brzina != null && VM.Brzina != -1)
            {
                BiciklaQry = BiciklaQry.Where(x => x.Model.Brzina == VM.Brzina.Value);
            }


            if (VM.Poredak.HasValue)
            {
                switch (VM.Poredak.Value)
                {
                case 1: BiciklaQry = BiciklaQry.OrderBy(x => x.Model.Naziv); break;

                case 2: BiciklaQry = BiciklaQry.OrderByDescending(x => x.Model.Naziv); break;

                case 3: BiciklaQry = BiciklaQry.OrderByDescending(x => x.Cijena); break;

                case 4: BiciklaQry = BiciklaQry.OrderBy(x => x.Cijena); break;
                }
            }

            Model.PagedResult = BiciklaQry.Select(
                x => new PrikaziBiciklaZaIznajmitiVM.Row
            {
                BiciklId          = x.BiciklId,
                Boja              = x.Boja,
                Cijena            = x.Cijena,
                CijenaPoDanu      = x.CijenaPoDanu,
                GodinaProizvodnje = x.GodinaProizvodnje,
                Model             = new Data.EntityModels.Model
                {
                    Naziv       = x.Model.Naziv,
                    Proizvodjac = x.Model.Proizvodjac
                },
                NoznaKocnica = x.NoznaKocnica,
                Slika        = x.Slika,
                Stanje       = x.Stanje,
                Kolicina     = x.BiciklStanje.Where(y => y.Aktivan).Sum(y => y.Kolicina),
                Aktivan      = x.Aktivan
            }
                ).GetPaged(VM.Page, 6);

            return(PartialView(Model));
        }