public async Task Init() { if (LigeList.Count == 0)//u prvom slucaju odnosno kada nista nije odabrano...ako je nesto odabrano ovo preskacemo { var ligalist = await _apiServiceLige.Get <IEnumerable <Liga> >(null); foreach (var liga in ligalist) { LigeList.Add(liga); } } if (SelectedLiga != null)//dolazimo ovdje kada korisnik odabere nesto u dropdown listi { UtakmiceeSearchRequest searchRequest = new UtakmiceeSearchRequest { LigaID = SelectedLiga.LigaID//uzimamo id i saljemo na api }; var list = await _apiServiceUtakmice.Get <IEnumerable <Utakmica> >(searchRequest); UtakmiceList.Clear(); foreach (var utakmica in list) { UtakmiceList.Add(utakmica); } } }
private DecisionQuery MainDecisionTree() { var check = new DecisionQuery { Title = "Provjera", Test = async(z) => { List <Utakmica> lista = new List <Utakmica>(); if (z.naziv == "lokacija") { lista = await _apiServiceUtakmice.Get <List <Utakmica> >(new UtakmiceeSearchRequest() { GradID = z.id }); } else if (z.naziv == "stadioni") { lista = await _apiServiceUtakmice.Get <List <Utakmica> >(new UtakmiceeSearchRequest() { StadionID = z.id }); } else { lista = await _apiServiceUtakmice.Get <List <Utakmica> >(new UtakmiceeSearchRequest() { TimID = z.id }); } return(lista); }, Positive = new DecisionResult() { result = true, utakmice = new List <Utakmica>() }, Negative = new DecisionResult() { result = false, utakmice = new List <Utakmica>() } }; var datumi = new DecisionQuery { Title = "Datumi", Test = async(z) => { UtakmiceeSearchRequest req = new UtakmiceeSearchRequest(); if (z.naziv == "lokacija") { req.GradID = z.id; req.PoLokaciji = true; } else if (z.naziv == "stadioni") { req.StadionID = z.id; req.PoStadionu = true; } else { req.TimID = z.id; req.PoTimu = true; } if (z.d1 != DateTime.MinValue && z.d2 != DateTime.MinValue) { req.d1 = z.d1; req.d2 = z.d2; } var lista = await _apiServiceUtakmice.Get <List <Utakmica> >(req); return(lista); }, Positive = check, Negative = new DecisionResult() { result = false, utakmice = new List <Utakmica>() } }; var cijene = new DecisionQuery { Title = "Cijene", Test = async(z) => { UtakmiceeSearchRequest req = new UtakmiceeSearchRequest(); if (z.naziv == "lokacija") { req.GradID = z.id; req.PoLokaciji = true; } else if (z.naziv == "stadioni") { req.StadionID = z.id; req.PoStadionu = true; } else { req.TimID = z.id; req.PoTimu = true; } if (z.d1 != DateTime.MinValue && z.d2 != DateTime.MinValue) { req.d1 = z.d1; req.d2 = z.d2; } if (z.cijena != -1) { req.cijena = z.cijena; } var lista = await _apiServiceUtakmice.Get <List <Utakmica> >(req); return(lista); }, Positive = datumi, Negative = new DecisionResult() { result = false, utakmice = new List <Utakmica>() } }; return(cijene); }
public override List <Utakmica> Get(UtakmiceeSearchRequest search) { var q = _context.Set <Database.Utakmice>().AsQueryable(); if (!search.sveUtakmice) { q = q.Where(s => s.DatumOdigravanja.Date >= DateTime.Now.Date); } if (search.PoTimu && search?.cijena.HasValue == true && (search.LigaID.HasValue == true || search.TimID.HasValue == true) && search?.d1 != null && search?.d2 != null) { var tribine = new List <Tribine>(); tribine = _context.Tribine.Where(s => s.Cijena <= search.cijena).ToList(); var sektori = _context.Sektori.Where(a => tribine.Any(s => s.TribinaID == a.TribinaID)).ToList(); var sjedala = _context.Sjedala.Where(a => sektori.Any(s => s.SektorID == a.SektorID) && a.Status == false).ToList(); if (sjedala.Count != 0) { if (search.LigaID.HasValue == true) { q = q.Where(s => tribine.Any(a => a.StadionID == s.StadionID) && s.LigaID == search.LigaID); } if (search.TimID.HasValue == true) { q = q.Where(s => tribine.Any(a => a.StadionID == s.StadionID) && (s.DomaciTimID == search.TimID || s.GostujuciTimID == search.TimID)); } q = q.Where(s => s.DatumOdigravanja > search.d1 && s.DatumOdigravanja < search.d2); List <Utakmica> lista = _mapper.Map <List <Utakmica> >(q.ToList().Distinct()); return(lista); } else//ili vrati praznu { return(new List <Utakmica>()); } } else if (search.PoTimu && search?.cijena.HasValue == true && (search.LigaID.HasValue == true || search.TimID.HasValue == true)) { var tribine = new List <Tribine>(); tribine = _context.Tribine.Where(s => s.Cijena <= search.cijena).ToList(); var sektori = _context.Sektori.Where(a => tribine.Any(s => s.TribinaID == a.TribinaID)).ToList(); var sjedala = _context.Sjedala.Where(a => sektori.Any(s => s.SektorID == a.SektorID) && a.Status == false).ToList(); if (sjedala.Count != 0) { if (search.LigaID.HasValue == true) { q = q.Where(s => tribine.Any(a => a.StadionID == s.StadionID) && s.LigaID == search.LigaID); } if (search.TimID.HasValue == true) { q = q.Where(s => tribine.Any(a => a.StadionID == s.StadionID) && (s.DomaciTimID == search.TimID || s.GostujuciTimID == search.TimID)); } List <Utakmica> lista = _mapper.Map <List <Utakmica> >(q.ToList().Distinct()); return(lista); } else//ili vrati praznu { return(new List <Utakmica>()); } } else if (search.PoTimu && search?.d1 != null && search?.d2 != null && (search.LigaID.HasValue == true || search.TimID.HasValue == true)) { if (search.LigaID.HasValue == true) { q = q.Where(s => s.DatumOdigravanja > search.d1 && s.DatumOdigravanja < search.d2 && s.LigaID == search.LigaID); } if (search.TimID.HasValue == true) { q = q.Where(s => s.DatumOdigravanja > search.d1 && s.DatumOdigravanja < search.d2 && (s.DomaciTimID == search.TimID || s.GostujuciTimID == search.TimID)); } List <Utakmica> lista = _mapper.Map <List <Utakmica> >(q.ToList().Distinct()); return(lista); } else if (search.PoStadionu && search?.cijena.HasValue == true && (search.DrzavaID.HasValue == true || search.StadionID.HasValue == true) && search?.d1 != null && search?.d2 != null) { var tribine = new List <Tribine>(); if (!search.StadionID.HasValue) { tribine = _context.Tribine.Where(s => s.Cijena <= search.cijena && q.Any(a => a.StadionID == s.StadionID)).ToList(); } else { tribine = _context.Tribine.Where(s => s.Cijena <= search.cijena && s.StadionID == search.StadionID).ToList(); } var sektori = _context.Sektori.Where(a => tribine.Any(s => s.TribinaID == a.TribinaID)).ToList(); var sjedala = _context.Sjedala.Where(a => sektori.Any(s => s.SektorID == a.SektorID) && a.Status == false).ToList(); if (sjedala.Count != 0) { if (search.DrzavaID.HasValue == true) { q = q.Include(s => s.stadion.Grad).Where(s => tribine.Any(a => a.StadionID == s.StadionID) && s.stadion.Grad.DrzavaID == search.DrzavaID); } if (search.StadionID.HasValue == true) { q = q.Where(s => tribine.Any(a => a.StadionID == s.StadionID)); } q = q.Where(s => s.DatumOdigravanja > search.d1 && s.DatumOdigravanja < search.d2); List <Utakmica> lista = _mapper.Map <List <Utakmica> >(q.ToList()); return(lista); } else//ili vrati praznu { return(new List <Utakmica>()); } } else if (search.PoStadionu && search?.cijena.HasValue == true && (search.DrzavaID.HasValue == true || search.StadionID.HasValue == true)) { var tribine = new List <Tribine>(); if (!search.StadionID.HasValue) { tribine = _context.Tribine.Where(s => s.Cijena <= search.cijena && q.Any(a => a.StadionID == s.StadionID)).ToList(); } else { tribine = _context.Tribine.Where(s => s.Cijena <= search.cijena && s.StadionID == search.StadionID).ToList(); } var sektori = _context.Sektori.Where(a => tribine.Any(s => s.TribinaID == a.TribinaID)).ToList(); var sjedala = _context.Sjedala.Where(a => sektori.Any(s => s.SektorID == a.SektorID) && a.Status == false).ToList(); if (sjedala.Count != 0) { if (search.DrzavaID.HasValue == true) { q = q.Include(s => s.stadion.Grad).Where(s => tribine.Any(a => a.StadionID == s.StadionID) && s.stadion.Grad.DrzavaID == search.DrzavaID); } if (search.StadionID.HasValue == true) { q = q.Where(s => tribine.Any(a => a.StadionID == s.StadionID)); } List <Utakmica> lista = _mapper.Map <List <Utakmica> >(q.ToList()); return(lista); } else//ili vrati praznu { return(new List <Utakmica>()); } } else if (search.PoStadionu && search?.d1 != null && search?.d2 != null && (search.DrzavaID.HasValue == true || search.StadionID.HasValue == true)) { if (search.DrzavaID.HasValue == true) { q = q.Include(s => s.stadion.Grad).Where(s => s.DatumOdigravanja > search.d1 && s.DatumOdigravanja < search.d2 && s.stadion.Grad.DrzavaID == search.DrzavaID); } if (search.StadionID.HasValue == true) { q = q.Where(s => s.DatumOdigravanja > search.d1 && s.DatumOdigravanja < search.d2 && s.StadionID == search.StadionID); } List <Utakmica> lista = _mapper.Map <List <Utakmica> >(q.ToList()); return(lista); } else if (search.PoLokaciji && search?.cijena.HasValue == true && (search.DrzavaID.HasValue == true || search.GradID.HasValue == true) && search?.d1 != null && search?.d2 != null) { var tribine = _context.Tribine.Where(s => s.Cijena <= search.cijena && q.Any(a => a.StadionID == s.StadionID)).ToList(); var sektori = _context.Sektori.Where(a => tribine.Any(s => s.TribinaID == a.TribinaID)).ToList(); var sjedala = _context.Sjedala.Where(a => sektori.Any(s => s.SektorID == a.SektorID) && a.Status == false).ToList(); if (sjedala.Count != 0) { if (search.DrzavaID.HasValue == true) { q = q.Include(s => s.stadion.Grad).Where(s => tribine.Any(a => a.StadionID == s.StadionID) && s.stadion.Grad.DrzavaID == search.DrzavaID); } if (search.GradID.HasValue == true) { q = q.Include(s => s.stadion).Where(s => tribine.Any(a => a.StadionID == s.StadionID) && s.stadion.GradID == search.GradID); } q = q.Where(s => s.DatumOdigravanja > search.d1 && s.DatumOdigravanja < search.d2); List <Utakmica> lista = _mapper.Map <List <Utakmica> >(q.ToList()); return(lista); } else//ili vrati praznu { return(new List <Utakmica>()); } } else if (search.PoLokaciji && search?.cijena.HasValue == true && (search.DrzavaID.HasValue == true || search.GradID.HasValue == true)) { var tribine = _context.Tribine.Where(s => s.Cijena <= search.cijena && q.Any(a => a.StadionID == s.StadionID)).ToList(); var sektori = _context.Sektori.Where(a => tribine.Any(s => s.TribinaID == a.TribinaID)).ToList(); var sjedala = _context.Sjedala.Where(a => sektori.Any(s => s.SektorID == a.SektorID) && a.Status == false).ToList(); if (sjedala.Count != 0) { if (search.DrzavaID.HasValue == true) { q = q.Include(s => s.stadion.Grad).Where(s => tribine.Any(a => a.StadionID == s.StadionID) && s.stadion.Grad.DrzavaID == search.DrzavaID); } if (search.GradID.HasValue == true) { q = q.Include(s => s.stadion).Where(s => tribine.Any(a => a.StadionID == s.StadionID) && s.stadion.GradID == search.GradID); } List <Utakmica> lista = _mapper.Map <List <Utakmica> >(q.ToList()); return(lista); } else//ili vrati praznu { return(new List <Utakmica>()); } } else if (search.PoLokaciji && search?.d1 != null && search?.d2 != null && (search.DrzavaID.HasValue == true || search.GradID.HasValue == true)) { if (search.DrzavaID.HasValue == true) { q = q.Include(s => s.stadion.Grad).Where(s => s.DatumOdigravanja > search.d1 && s.DatumOdigravanja < search.d2 && s.stadion.Grad.DrzavaID == search.DrzavaID); } if (search.GradID.HasValue == true) { q = q.Include(s => s.stadion).Where(s => s.DatumOdigravanja > search.d1 && s.DatumOdigravanja < search.d2 && s.stadion.GradID == search.GradID); } List <Utakmica> lista = _mapper.Map <List <Utakmica> >(q.ToList()); return(lista); } else { if (search?.TimID.HasValue == true) { q = q.Where(s => s.DomaciTimID == search.TimID || s.GostujuciTimID == search.TimID); } if (search?.d1 != null && search?.d2 != null) { q = q.Where(s => s.DatumOdigravanja > search.d1 && s.DatumOdigravanja < search.d2); } if (search?.GradID.HasValue == true) { q = q.Include(s => s.stadion).Where(s => s.stadion.GradID == search.GradID); } if (search?.DrzavaID.HasValue == true) { q = q.Include(s => s.stadion.Grad).Where(s => s.stadion.Grad.DrzavaID == search.DrzavaID); } if (search?.LigaID.HasValue == true) { q = q.Where(s => s.LigaID == search.LigaID); } if (search?.StadionID.HasValue == true) { q = q.Where(s => s.StadionID == search.StadionID); } } var list = q.ToList(); return(_mapper.Map <List <Utakmica> >(list)); }