Пример #1
0
 //Ova funkcija ispisuje LINQ rezultate
 public static void ListResult <T>(IEnumerable <T> result)
 {
     foreach (object item in result)
     {
         if (item.GetType() == typeof(Pilot))
         {
             Pilot p = (Pilot)item;
             Console.WriteLine("{0} {1} {2} {3} {4}", p.Ime, p.Prezime, p.Sifra, p.Momcad.Naziv, p.Vrsta);
         }
         if (item.GetType() == typeof(Drzava))
         {
             Drzava dr = (Drzava)item;
             Console.WriteLine("{0} {1}", dr.Naziv, dr.Oznaka);
         }
         if (item.GetType() == typeof(Staza))
         {
             Staza staza = (Staza)item;
             Console.WriteLine("{0} {1} {2}", staza.Naziv, staza.Drzava.Naziv, staza.Rekord);
         }
     }
 }
Пример #2
0
 //Ova funkcija ispisuje QBE i NQ rezultate
 public static void ListResult(IObjectSet result)
 {
     foreach (object item in result)
     {
         if (item.GetType() == typeof(Pilot))
         {
             Pilot pilot = (Pilot)item;
             Console.WriteLine("{0} {1} {2} {3} {4}", pilot.Ime, pilot.Prezime, pilot.Sifra, pilot.Momcad.Naziv, pilot.Vrsta);
         }
         if (item.GetType() == typeof(Drzava))
         {
             Drzava drzava = (Drzava)item;
             Console.WriteLine("{0} {1}", drzava.Naziv, drzava.Oznaka);
         }
         if (item.GetType() == typeof(Staza))
         {
             Staza staza = (Staza)item;
             Console.WriteLine("{0} {1} {2}", staza.Naziv, staza.Drzava.Naziv, staza.Rekord);
         }
     }
 }
Пример #3
0
        public static void UpisiNoveUBazu()
        {
            for (int i = 0; i < 4; i++)
            {
                Pilot pilot = new Pilot();
                Console.WriteLine(YapFileName);

                Console.WriteLine("Ime pilota:");
                pilot.Ime = Console.ReadLine();

                Console.WriteLine("Prezime pilota:");
                pilot.Prezime = Console.ReadLine();

                Console.WriteLine("Sifra pilota:");
                pilot.Sifra = Convert.ToInt32(Console.ReadLine());

                Console.WriteLine("Drzava pilota:");
                Drzava drzava = new Drzava();
                drzava.Naziv = Console.ReadLine();
                pilot.Drzava = drzava;

                Console.WriteLine("Momcad pilota:");
                Momcad momcad = new Momcad();
                momcad.Naziv = Console.ReadLine();
                pilot.Momcad = momcad;

                Console.WriteLine("Bodovi pilota:");
                pilot.Bodovi = Convert.ToInt32(Console.ReadLine());

                Console.WriteLine("Vrsta pilota:");
                pilot.Vrsta = Console.ReadLine();

                dataBase.Store(pilot);

            }
        }
Пример #4
0
        static void Main(string[] args)
        {
            //UpisiNoveUBazu();

            #region Jednostavni upiti
            #region QBE
            Console.WriteLine("Obavljam QBE za pilote");
            IObjectSet rezultatQBE = dataBase.QueryByExample(typeof(Pilot));
            ListResult(rezultatQBE);
            Console.WriteLine();
            #endregion

            #region NQ
            Console.WriteLine("Dohvacam po imenu");
            string ime = Console.ReadLine();

            //Dohvacanje svih pilota koji imaju ime ucitano iz konzole
            IList<Pilot> rezultatNQ = dataBase.Query<Pilot>(delegate(Pilot pilot)
            {
                return pilot.Ime == ime;
            });
            foreach (Pilot p in rezultatNQ)
            {
                Console.WriteLine("{0} {1} {2} {3} {4}", p.Ime, p.Prezime, p.Sifra, p.Momcad.Naziv, p.Vrsta);
            }

            Console.WriteLine();
            #endregion

            #region SODA

            Console.WriteLine("SODA upit");
            string prviSodaString = Console.ReadLine();
            string drugiSodaStrnig = Console.ReadLine();
            IQuery query = dataBase.Query();
            query.Constrain(typeof(Pilot));
            query.Descend("_ime").Constrain(prviSodaString).Or(query.Descend("_ime").Constrain(drugiSodaStrnig));

            IObjectSet rezultatSodaUpita = query.Execute();
            ListResult(rezultatSodaUpita);
            Console.WriteLine();

            #endregion

            #region LINQ
            Console.WriteLine("LINQ upit");
            string linqString = Console.ReadLine();

            IEnumerable<Pilot> rezultatLINQUpita = from Pilot p in dataBase
                                                   where p.Ime == linqString
                                                   select p;
            ListResult(rezultatLINQUpita
            Console.WriteLine();
            #endregion
            #endregion

            #region (malo)Slozeniji upiti
            #region QBE
            //Dohvacamo pilota preko drzave
            Drzava drzavaSlozenijiQBE = new Drzava();
            drzavaSlozenijiQBE.Naziv = "Hrvatska";
            Pilot pilotSlozenijiQBE = new Pilot();
            pilotSlozenijiQBE.Drzava = drzavaSlozenijiQBE;

            Console.WriteLine("Slozeniji QBE\nTrazimo sve vozace iz Hrvatske\n");
            IObjectSet rezultatSlozenijegQBE = dataBase.QueryByExample(pilotSlozenijiQBE);
            ListResult(rezultatSlozenijegQBE);
            Console.WriteLine();
            #endregion

            #region NQ

            Drzava drzavaSlozenijiNQ = new Drzava();
            drzavaSlozenijiQBE.Naziv = "Hrvatska";

            //Pilot pilotSlozenijiNQ = new Pilot();
            //pilotSlozenijiNQ.Drzava = drzavaSlozenijiNQ;

            IList<Drzava> rezultatDrzavaSlozenijiNQ = dataBase.Query<Drzava>(delegate(Drzava drzava)
            {
                return drzava.Naziv == "Hrvatska";
            });

            //ako postoji drzava imena Hrvatska onda trazi pilote iz te drzave
            if(rezultatDrzavaSlozenijiNQ.Count > 0)
            {
                Console.WriteLine("Slozeniji NQ\nTrazimo vozace iz Hrvatske\n");
                IList<Pilot> rezultatSlozenijegNQ = dataBase.Query<Pilot>(delegate(Pilot pilot)
                {
                    return pilot.Drzava.Naziv == rezultatDrzavaSlozenijiNQ[0].Naziv;
                });
                ListResult(rezultatSlozenijegNQ);
                Console.WriteLine();
            }
            #endregion

            #region SODA
            //Definiramo upit za dohvacanje drzave
            //Ovo je vec malo teze kemijanje. Ovakvo nesto nece sigurno biti ;)
            //Isto se radi i u LINQ upitima.
            //Buduci da ne znam kako se preko samog naziva drzave dokopati pilota isao sam za svaku
            //pronadenu drzavu traziti onaj element koji ju sadrzi
            IQuery slozenijiSODAUpitDrzava = dataBase.Query();
            slozenijiSODAUpitDrzava.Constrain(typeof(Drzava));
            slozenijiSODAUpitDrzava.Descend("_naziv").Constrain("Hrvatska");

            IObjectSet rezultatDrzavaSlozenijiSODA = slozenijiSODAUpitDrzava.Execute();

            //Ako smo pronasli drzavu dohvacamo pilote iz te drzave
            if (rezultatDrzavaSlozenijiSODA.Count > 0)
            {
                Console.WriteLine("Slozeniji SODA\nTrazimo vozace iz Hrvatske \n");

                for (int i = 0; i < rezultatDrzavaSlozenijiSODA.Count; i++)
                {
                    IQuery slozenijiSODAUpitPilot = dataBase.Query();
                    slozenijiSODAUpitPilot.Constrain(typeof(Pilot));
                    slozenijiSODAUpitPilot.Descend("_drzava").Constrain(rezultatDrzavaSlozenijiSODA[i]);

                    IObjectSet rezultatPilotSlozenijiSODA = slozenijiSODAUpitPilot.Execute();
                    ListResult(rezultatPilotSlozenijiSODA);  
                }
            }
            #endregion

            #region  LINQ
            Console.WriteLine("LINQ upit");
            IEnumerable<Drzava> rezultatDrzavaSlozenijeLINQ = from Drzava d in dataBase
                                                   where d.Naziv == "Hrvatska"
                                                   select d;

            foreach (Drzava drzavaUSlozenijemLINQ in rezultatDrzavaSlozenijeLINQ)
            {
                IEnumerable<Pilot> rezultatLINQUpita = from Pilot p in dataBase
                                                       where p.Drzava == drzavaUSlozenijemLINQ
                                                       select p;
                ListResult(rezultatLINQUpita);
            }
            
            Console.WriteLine();
            #endregion
            #endregion
        }