示例#1
0
        public static List <KoloViewModel> NewLeague()
        {
            List <TimViewModel> timovi;

            using (var context = new RezultatiContext())
            {
                timovi = context.Tims.Select(t => new TimViewModel
                {
                    TimID   = t.TimID,
                    Grad    = t.Grad,
                    Naziv   = t.Naziv,
                    Stadion = t.Stadion,
                    Trener  = t.Trener
                }).ToList();
            }

            if ((int)Math.Ceiling(Math.Log(timovi.Count) / Math.Log(2)) != (int)Math.Floor(Math.Log(timovi.Count) / Math.Log(2)))
            {
                throw new Exception("Format lige mora biti tipa 2^n!");
            }

            int[] timoviID = new int[timovi.Count]; //za izvlacenje
            for (int i = 0; i < timovi.Count; i++)
            {
                timoviID[i] = timovi.ElementAt(i).TimID;
            }

            int                  brKola          = BrKombinacijaUtakmica(timovi.Count) / 2;
            int                  brUtakmicaUKolu = (BrKombinacijaUtakmica(timovi.Count) * 2) / brKola;
            List <Par>           listaParova     = GetParove(timoviID);
            List <KoloViewModel> listaKola       = new List <KoloViewModel>();

            DateTime start = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1).AddMonths(1);

            for (int i = 0; i < brKola; i++)
            {
                List <UtakmicaViewModel> listaUtakmica = new List <UtakmicaViewModel>();
                for (int j = 0; j < brUtakmicaUKolu; j++)
                {
                    UtakmicaViewModel utakmica = new UtakmicaViewModel();
                    utakmica.DomaciTimID    = listaParova[i * brUtakmicaUKolu + j].DomacinID;
                    utakmica.GostujuciTimID = listaParova[i * brUtakmicaUKolu + j].GostID;
                    utakmica.Kolo           = i + 1;
                    DateTime datumIgranja = start.AddDays(rnd.Next(1, DateTime.DaysInMonth(start.Year, start.Month) + 1));
                    utakmica.Datum      = new DateTime(datumIgranja.Year, datumIgranja.Month, datumIgranja.Day, rnd.Next(18, 23), 0, 0);
                    utakmica.UtakmicaID = i * brUtakmicaUKolu + j;
                    utakmica.Odigrana   = false;
                    listaUtakmica.Add(utakmica);
                }
                KoloViewModel novoKolo = new KoloViewModel();
                novoKolo.Utakmice = listaUtakmica;
                listaKola.Add(novoKolo);
                start = start.AddMonths(1);
            }

            return(listaKola);
        }
示例#2
0
 public static void GenerisiLigu(List <KoloViewModel> listaKola)
 {
     using (var context = new RezultatiContext())
     {
         foreach (var kolo in listaKola)
         {
             foreach (var utakmica in kolo.Utakmice)
             {
                 context.Utakmicas.Add(new Utakmica()
                 {
                     Datum          = utakmica.Datum,
                     DomaciTimID    = utakmica.DomaciTimID,
                     GostujuciTimID = utakmica.GostujuciTimID,
                     Kolo           = utakmica.Kolo,
                     Odigrana       = utakmica.Odigrana,
                     DomacinGolovi  = utakmica.DomacinGolovi,
                     GostGolovi     = utakmica.GostGolovi
                 });
             }
         }
         context.SaveChanges();
     }
 }
示例#3
0
        public static void GenerisiUcinke()
        {
            using (var context = new RezultatiContext())
            {
                var listaUtakmica = context.Utakmicas.ToList();

                foreach (var utakmica in listaUtakmica)
                {
                    var domacin = utakmica.Tim;
                    foreach (var igrac in domacin.Igracs)
                    {
                        var ucinak = new Ucinak();
                        ucinak.IgracID         = igrac.IgracID;
                        ucinak.UtakmicaID      = utakmica.UtakmicaID;
                        ucinak.CrvenihKartona  = 0;
                        ucinak.ZutihKartona    = 0;
                        ucinak.OdigranihMinuta = 0;
                        ucinak.Golova          = 0;
                        context.Ucinaks.Add(ucinak);
                    }

                    var gost = utakmica.Tim1;
                    foreach (var igrac in gost.Igracs)
                    {
                        var ucinak = new Ucinak();
                        ucinak.IgracID         = igrac.IgracID;
                        ucinak.UtakmicaID      = utakmica.UtakmicaID;
                        ucinak.CrvenihKartona  = 0;
                        ucinak.ZutihKartona    = 0;
                        ucinak.OdigranihMinuta = 0;
                        ucinak.Golova          = 0;
                        context.Ucinaks.Add(ucinak);
                    }
                }
                context.SaveChanges();
            }
        }