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);
                }
            }
        }
Exemplo n.º 2
0
        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));
        }