예제 #1
0
        public void UpdateIgracUtakmicaSingle(EvidencijaMeca obj, int pobjednik)
        {
            Tip_Rezultata  pobjeda = db.TipoviRezultata.AsNoTracking().Where(c => c.Naziv == "Pobjeda").FirstOrDefault();
            Tip_Rezultata  poraz   = db.TipoviRezultata.AsNoTracking().Where(c => c.Naziv == "Poraz").FirstOrDefault();
            Igrac_Utakmica x       = db.IgraciUtakmice
                                     .AsNoTracking()
                                     .Where(c => c.IgID == obj.Tim1[0].IgID).FirstOrDefault();

            x.OsvojeniSetovi = obj.RezultatTim1.GetValueOrDefault();
            int xs = (pobjednik == 1) ? 1 : 0; // predstavlja score x - naziv ucesca, slovo s - score

            Igrac_Utakmica y = db.IgraciUtakmice
                               .AsNoTracking()
                               .Where(c => c.IgID == obj.Tim2[0].IgID).FirstOrDefault();

            y.OsvojeniSetovi = obj.RezultatTim2.GetValueOrDefault();
            int ys = (pobjednik == 2) ? 1 : 0; // predstavlja score y - naziv ucesca, slovo s - score


            Igrac xigrac = db.Igraci.AsNoTracking().Where(c => c.ID == x.IgracID).FirstOrDefault();
            Igrac yigrac = db.Igraci.AsNoTracking().Where(c => c.ID == y.IgracID).FirstOrDefault();

            x.PristupniElo = xigrac.ELO;
            y.PristupniElo = yigrac.ELO;

            string X = "pobjeda";
            string Y = "poraz";

            if (xs == 1)
            {
                x.TipRezultata = pobjeda;
                y.TipRezultata = poraz;
            }
            else
            {
                x.TipRezultata = poraz;
                y.TipRezultata = pobjeda;
                X = "poraz";
                Y = "pobjeda";
            }
            UpdateStatistikuIStanjePrijave(x.IgracID ?? default(int), X == "pobjeda" ? true : false, false);
            UpdateStatistikuIStanjePrijave(y.IgracID ?? default(int), Y == "pobjeda" ? true : false, false);

            db.Update(x);
            db.Update(y);
            db.SaveChanges();

            xigrac.ELO = ELOCalculator.VratiEloSingle(x.PristupniElo.GetValueOrDefault(), y.PristupniElo.GetValueOrDefault(), xs);
            yigrac.ELO = ELOCalculator.VratiEloSingle(y.PristupniElo.GetValueOrDefault(), x.PristupniElo.GetValueOrDefault(), ys);

            db.Igraci.Where(c => c.ID == xigrac.ID).FirstOrDefault().ELO = xigrac.ELO;
            db.SaveChanges();
            db.Igraci.Where(c => c.ID == yigrac.ID).FirstOrDefault().ELO = yigrac.ELO;
            db.SaveChanges();

            return;
        }
예제 #2
0
        public void UpdateIgracUtakmicaDouble(EvidencijaMeca obj, int pobjednik)
        {
            Tip_Rezultata  pobjeda = db.TipoviRezultata.AsNoTracking().Where(x => x.Naziv == "Pobjeda").FirstOrDefault();
            Tip_Rezultata  poraz   = db.TipoviRezultata.AsNoTracking().Where(x => x.Naziv == "Poraz").FirstOrDefault();
            Igrac_Utakmica x1      = db.IgraciUtakmice.AsNoTracking()
                                     .Where(x => x.IgID == obj.Tim1[0].IgID).FirstOrDefault();
            Igrac_Utakmica x2 = db.IgraciUtakmice.AsNoTracking()
                                .Where(x => x.IgID == obj.Tim1[1].IgID).FirstOrDefault();

            x1.OsvojeniSetovi = obj.RezultatTim1.GetValueOrDefault();
            x2.OsvojeniSetovi = obj.RezultatTim1.GetValueOrDefault();
            int xs = (pobjednik == 1) ? 1 : 0; // predstavlja score x - naziv ucesca, slovo s - score

            Igrac_Utakmica y1 = db.IgraciUtakmice.AsNoTracking()
                                .Where(x => x.IgID == obj.Tim2[0].IgID).FirstOrDefault();
            Igrac_Utakmica y2 = db.IgraciUtakmice.AsNoTracking()
                                .Where(x => x.IgID == obj.Tim2[1].IgID).FirstOrDefault();

            y1.OsvojeniSetovi = obj.RezultatTim2.GetValueOrDefault();
            y2.OsvojeniSetovi = obj.RezultatTim2.GetValueOrDefault();
            int ys = (pobjednik == 2) ? 1 : 0; // predstavlja score x - naziv ucesca, slovo s - score


            Igrac x1igrac = db.Igraci.AsNoTracking().Where(c => c.ID == x1.IgracID).FirstOrDefault();
            Igrac x2igrac = db.Igraci.AsNoTracking().Where(c => c.ID == x2.IgracID).FirstOrDefault();
            Igrac y1igrac = db.Igraci.AsNoTracking().Where(c => c.ID == y1.IgracID).FirstOrDefault();
            Igrac y2igrac = db.Igraci.AsNoTracking().Where(c => c.ID == y2.IgracID).FirstOrDefault();

            x1.PristupniElo = x1igrac.ELO;
            x2.PristupniElo = x2igrac.ELO;

            y1.PristupniElo = y1igrac.ELO;
            y2.PristupniElo = y2igrac.ELO;

            string X = "pobjeda";
            string Y = "poraz";

            if (xs == 1)
            {
                x1.TipRezultata = pobjeda;
                x2.TipRezultata = pobjeda;
                y1.TipRezultata = poraz;
                y2.TipRezultata = poraz;
            }
            else
            {
                x1.TipRezultata = poraz;
                x2.TipRezultata = poraz;
                y1.TipRezultata = pobjeda;
                y2.TipRezultata = pobjeda;
                X = "poraz";
                Y = "pobjeda";
            }
            UpdateStatistikuIStanjePrijave(x1.IgracID ?? default(int), X == "pobjeda" ? true : false, true);
            UpdateStatistikuIStanjePrijave(x2.IgracID ?? default(int), X == "pobjeda" ? true : false, true);
            UpdateStatistikuIStanjePrijave(y1.IgracID ?? default(int), Y == "pobjeda" ? true : false, true);
            UpdateStatistikuIStanjePrijave(y2.IgracID ?? default(int), Y == "pobjeda" ? true : false, true);

            db.IgraciUtakmice.Update(x1);
            db.IgraciUtakmice.Update(x2);
            db.IgraciUtakmice.Update(y1);
            db.IgraciUtakmice.Update(y2);
            db.SaveChanges();

            x1igrac.ELO = ELOCalculator.VratiEloDouble(
                x1.PristupniElo.GetValueOrDefault(),
                x2.PristupniElo.GetValueOrDefault(),
                y1.PristupniElo.GetValueOrDefault(),
                y2.PristupniElo.GetValueOrDefault(), xs);

            x2igrac.ELO = ELOCalculator.VratiEloDouble(
                x2.PristupniElo.GetValueOrDefault(),
                x1.PristupniElo.GetValueOrDefault(),
                y1.PristupniElo.GetValueOrDefault(),
                y2.PristupniElo.GetValueOrDefault(), xs);

            y1igrac.ELO = ELOCalculator.VratiEloDouble(
                y1.PristupniElo.GetValueOrDefault(),
                y2.PristupniElo.GetValueOrDefault(),
                x1.PristupniElo.GetValueOrDefault(),
                x2.PristupniElo.GetValueOrDefault(), ys);

            y2igrac.ELO = ELOCalculator.VratiEloDouble(
                y2.PristupniElo.GetValueOrDefault(),
                y1.PristupniElo.GetValueOrDefault(),
                x1.PristupniElo.GetValueOrDefault(),
                x2.PristupniElo.GetValueOrDefault(), ys);

            db.Igraci.Where(x => x.ID == x1igrac.ID).FirstOrDefault().ELO = x1igrac.ELO;
            db.Igraci.Where(x => x.ID == x2igrac.ID).FirstOrDefault().ELO = x2igrac.ELO;
            db.Igraci.Where(x => x.ID == y1igrac.ID).FirstOrDefault().ELO = y1igrac.ELO;
            db.Igraci.Where(x => x.ID == y2igrac.ID).FirstOrDefault().ELO = y2igrac.ELO;
            db.SaveChanges();
        }