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)); }
public List <Model.Vozila> Get([FromQuery] PreporukeSearchRequest request) { return(_service.Get(request)); }