Exemplo n.º 1
0
        public List <Model.Artikli> Get(PreporukeSearchRequest request)
        {
            var list = _context.Artikli.Where(x => x.Status).ToList();
            List <Database.Artikli> artikliList = new List <Database.Artikli>();

            var preporuceniArtikliList   = new List <Database.Artikli>();
            var predhodneRezervacijeList = _context.Rezervacije.Include("RezervacijeArtikli.Artikal").Where(x => x.Klijent.KorisnickoIme == request.KorisnickoIme).ToList();//&& x.Status -ako zelimo samo rezervacije koje su aktivne

            foreach (var item in artikliList)
            {
                foreach (var rezervacije in predhodneRezervacijeList)
                {
                    if (rezervacije.RezervacijeArtikli.Where(x => x.ArtikalId == item.ArtikalId).Count() != 0 && preporuceniArtikliList.Count != 2)//ako ga je prethodno rezervisao && preporucena ne prelaze broj povratnih vozila
                    {
                        preporuceniArtikliList.Add(item);
                    }
                }
            }
            if (preporuceniArtikliList.Count < 2 && list.Count != 0)//ako nema preporucenih vozila vratiti neko nasumicno odabrano
            {
                var prep = list.OrderBy(x => Guid.NewGuid()).ToList();
                foreach (var item in prep)
                {
                    if (preporuceniArtikliList.Count < 2)
                    {
                        preporuceniArtikliList.Add(item);
                    }
                }
            }

            return(_mapper.Map <List <Model.Artikli> >(preporuceniArtikliList));
        }
        public List <Model.Vozila> Get(PreporukeSearchRequest request)
        {
            var list            = _context.Vozila.Include(x => x.Model).Include(x => x.Lokacija).Where(x => x.KategorijaVozilaId == request.KategorijaVozilaId && x.LokacijaId == request.LokacijaPreuzimanjaId && x.Status).ToList();
            var rezervacijeList = _context.Rezervacije.Where(x => x.Status == true).ToList();
            List <Database.Vozila> vozilaList = new List <Database.Vozila>();

            foreach (var item in list)
            {
                bool nema = true;
                foreach (var rezervacija in rezervacijeList)
                {
                    if (rezervacija.Status && rezervacija.VoziloId == item.VoziloId)
                    {
                        if (!(request.DatumPovrata.Date <= rezervacija.DatumPreuzimanja.Date || request.DatumPreuzimanja.Date >= rezervacija.DatumPovrata.Date))
                        {
                            nema = false;
                        }
                    }
                }
                if (nema)
                { //ako nije rezervisani
                    vozilaList.Add(item);
                }
            }

            var preporucenaVozilaList    = new List <Database.Vozila>();
            var predhodneRezervacijeList = _context.Rezervacije.Where(x => x.Kupac.KorisnickoIme == request.KorisnickoIme).ToList();

            foreach (var item in vozilaList)
            {
                if (predhodneRezervacijeList.Where(x => x.VoziloId == item.VoziloId).Count() != 0 && preporucenaVozilaList.Count != 1)//ako ga je prethodno rezervisao && preporucena ne prelaze broj povratnih vozila
                {
                    preporucenaVozilaList.Add(item);
                }
            }
            if (preporucenaVozilaList.Count == 0 && vozilaList.Count != 0)//ako nema preporucenih vozila vratiti neko nasumicno odabrano
            {
                var prep = vozilaList.OrderBy(x => Guid.NewGuid()).ToList();
                preporucenaVozilaList.Add(prep.FirstOrDefault());
            }

            return(_mapper.Map <List <Model.Vozila> >(preporucenaVozilaList));
        }
Exemplo n.º 3
0
 public List <Model.Vozila> Get([FromQuery] PreporukeSearchRequest request)
 {
     return(_service.Get(request));
 }