public ActionResult ElemeyeGonder(int id, int takim_sayisi)
        {
            Turnuva turnuva = BP_DatabaseEntities.Turnuva.Find(id);

            BP_DatabaseEntities.Entry(turnuva).Collection(x => x.Takim).Load();
            ICollection <Takim> takimlar     = turnuva.Takim;
            Turnuva             yeni_turnuva = new Turnuva();

            yeni_turnuva.turnuvaAdi    = turnuva.turnuvaAdi;
            yeni_turnuva.kullaniciId   = currentuser.kullaniciId;
            yeni_turnuva.turnuvaCesidi = "lig-eleme";
            BP_DatabaseEntities.Turnuva.Add(yeni_turnuva);
            BP_DatabaseEntities.SaveChanges();
            List <Turnuva> turnuvaList = new List <Turnuva>();
            var            groups      = BP_DatabaseEntities.Turnuva.GroupBy(p => p.kullaniciId);

            foreach (var group in groups)
            {
                if (group.Key.Value == currentuser.kullaniciId)
                {
                    foreach (var t in group)
                    {
                        turnuvaList.Add(t);
                    }
                }
            }
            Turnuva      son_turnuva          = turnuvaList.LastOrDefault();
            var          takimOrder           = takimlar.OrderByDescending(x => x.pts).ThenByDescending(x => x.avg).GroupBy(x => x.grupAdi);
            List <Takim> gonderilecekTakimlar = new List <Takim>();

            foreach (var g in takimOrder)
            {
                List <Takim> order_takim_list = g.ToList <Takim>();
                int          kacTakim         = takim_sayisi;
                for (int i = 0; i < kacTakim; i++)
                {
                    if (i < order_takim_list.Count)
                    {
                        Takim yeni_t = new Takim();
                        yeni_t.takimAdi  = order_takim_list[i].takimAdi;
                        yeni_t.turnuvaId = son_turnuva.turnuvaId;
                        yeni_t.pts       = order_takim_list[i].pts;
                        yeni_t.avg       = order_takim_list[i].avg;
                        yeni_t.grupAdi   = order_takim_list[i].grupAdi;
                        BP_DatabaseEntities.Takim.Add(yeni_t);
                        BP_DatabaseEntities.SaveChanges();
                        gonderilecekTakimlar.Add(order_takim_list[i]);
                    }
                }
            }
            BP_DatabaseEntities.Entry(son_turnuva).Collection(x => x.Round).Load();
            ICollection <Round> rounds = son_turnuva.Round;

            generateEleme(gonderilecekTakimlar, son_turnuva.turnuvaId, 1);
            return(RedirectToAction("Yonet", "Home", new { id = son_turnuva.turnuvaId }));
        }
        public ActionResult ElemeKura(List <string> elements)
        {
            //turnuvayı veri tabanına ekler
            Turnuva turnuva = new Turnuva();

            turnuva.kullaniciId   = currentuser.kullaniciId;
            turnuva.turnuvaAdi    = elements[0];
            turnuva.turnuvaCesidi = "eleme";
            BP_DatabaseEntities.Turnuva.Add(turnuva);
            BP_DatabaseEntities.SaveChanges();

            //takımları veri tabanına ekler
            for (int i = 1; i < elements.Count; i++)
            {
                Takim grup = new Takim();
                grup.takimAdi  = elements[i];
                grup.turnuvaId = turnuva.turnuvaId;
                BP_DatabaseEntities.Takim.Add(grup);
                BP_DatabaseEntities.SaveChanges();
            }

            //takimlari veri tabanından getirir ve eleme algoritmasını çalıştırır
            BP_DatabaseEntities.Entry(turnuva).Collection(x => x.Takim).Load();
            ICollection <Takim> takimlar  = turnuva.Takim;
            List <Takim>        takimlar_ = new List <Takim>();

            foreach (Takim t in takimlar)
            {
                if (t.turnuvaId == turnuva.turnuvaId)
                {
                    takimlar_.Add(t);
                }
            }
            List <Turnuva> turnuvalar = BP_DatabaseEntities.Turnuva.ToList();
            var            turnuva_   = turnuvalar.FirstOrDefault(x => x.kullaniciId == currentuser.kullaniciId && x.turnuvaId == turnuva.turnuvaId);

            generateEleme(takimlar_, turnuva_.turnuvaId, 1);

            // round listesini veri tabanından getirip view'a gönderir
            BP_DatabaseEntities.Entry(turnuva_).Collection(x => x.Round).Load();
            ICollection <Round> rounds     = turnuva_.Round;
            List <Round>        round_list = new List <Round>();

            foreach (Round r in rounds)
            {
                round_list.Add(r);
            }
            ViewBag.turnuvaadi = turnuva_.turnuvaAdi;
            return(RedirectToAction("Yonet", "Home", new { id = turnuva_.turnuvaId }));
            //   return View(round_list);
        }
        public ActionResult LigFiksture(List <string> elements, int groupNum)
        {
            Turnuva turnuva = new Turnuva();

            turnuva.kullaniciId   = currentuser.kullaniciId;
            turnuva.turnuvaAdi    = elements[0];
            turnuva.turnuvaCesidi = "lig";
            BP_DatabaseEntities.Turnuva.Add(turnuva);
            BP_DatabaseEntities.SaveChanges();

            List <Takim> takimlar_ = new List <Takim>();

            for (int i = 1; i < elements.Count; i++)
            {
                Takim takim = new Takim();
                takim.takimAdi  = elements[i];
                takim.turnuvaId = turnuva.turnuvaId;
                BP_DatabaseEntities.Takim.Add(takim);
                BP_DatabaseEntities.SaveChanges();
            }
            BP_DatabaseEntities.Entry(turnuva).Collection(x => x.Takim).Load();
            ICollection <Takim> takimlar = turnuva.Takim;

            foreach (Takim t in takimlar)
            {
                if (t.turnuvaId == turnuva.turnuvaId)
                {
                    takimlar_.Add(t);
                }
            }
            List <Turnuva> turnuvalar = BP_DatabaseEntities.Turnuva.ToList();
            var            turnuva_   = turnuvalar.FirstOrDefault(x => x.kullaniciId == currentuser.kullaniciId && x.turnuvaId == turnuva.turnuvaId);

            generateLigFiksture(takimlar_, turnuva_.turnuvaId, groupNum);
            BP_DatabaseEntities.Entry(turnuva_).Collection(x => x.Round).Load();
            ICollection <Round> rounds  = turnuva_.Round;
            List <Match>        matches = new List <Match>();

            foreach (Round r in rounds)
            {
                BP_DatabaseEntities.Entry(r).Collection(x => x.Match).Load();
                ICollection <Match> match = r.Match;
                foreach (Match m in match)
                {
                    matches.Add(m);
                }
            }
            ViewBag.turnuvaadi = turnuva_.turnuvaAdi;
            return(RedirectToAction("Yonet", "Home", new { id = turnuva_.turnuvaId }));
            //  return View(matches);
        }
        public ActionResult Yonet(int id)
        {
            Turnuva t = BP_DatabaseEntities.Turnuva.FirstOrDefault(x => x.turnuvaId == id);

            BP_DatabaseEntities.Entry(t).Collection(x => x.Round).Load();
            ICollection <Round> rounds     = t.Round;
            List <Round>        round_list = new List <Round>();

            foreach (Round r in rounds)
            {
                round_list.Add(r);
            }
            ViewBag.turnuvaadi     = t.turnuvaAdi;
            ViewBag.turnuvaid      = id;
            ViewBag.turnuva_cesidi = t.turnuvaCesidi;
            return(View(round_list));
        }
        public ActionResult Kaydet_Eleme(List <string> values, int id)
        {
            int     k = 0;
            Turnuva t = BP_DatabaseEntities.Turnuva.FirstOrDefault(x => x.turnuvaId == id);

            BP_DatabaseEntities.Entry(t).Collection(x => x.Round).Load();
            ICollection <Round> rounds = t.Round;
            int temp_round_id          = rounds.ElementAt(0).roundId;

            foreach (Round r in rounds)
            {
                ICollection <Match> match   = r.Match;
                List <Match>        matches = new List <Match>();
                matches.Clear();
                foreach (Match m in match)
                {
                    matches.Add(m);
                }

                int temp_match = 0;

                for (int j = 0; j < matches.Count; j += 2)
                {
                    try
                    {
                        if (values[k] != values[k + 1] && values[k] != "" && values[k + 1] != "")
                        {
                            BP_DatabaseEntities.Match.Find(matches[j].matchId).skor1 = Convert.ToInt32(values[k]);
                            BP_DatabaseEntities.Match.Find(matches[j].matchId).skor2 = Convert.ToInt32(values[k + 1]);
                            BP_DatabaseEntities.SaveChanges();
                        }

                        if (values[k + 2] != values[k + 3] && values[k + 2] != "" && values[k + 3] != "")
                        {
                            BP_DatabaseEntities.Match.Find(matches[j + 1].matchId).skor1 = Convert.ToInt32(values[k + 2]);
                            BP_DatabaseEntities.Match.Find(matches[j + 1].matchId).skor2 = Convert.ToInt32(values[k + 3]);
                            BP_DatabaseEntities.SaveChanges();
                        }
                    }
                    catch
                    {
                    }
                    if (matches.Count != 1)
                    {
                        if (matches[j].takimID1 != null && matches[j].takimID2 != null && matches[j].skor1 != null && matches[j].skor2 != null)
                        {
                            if (BP_DatabaseEntities.Match.Find(matches[j].matchId).skor1 > BP_DatabaseEntities.Match.Find(matches[j].matchId).skor2)
                            {
                                BP_DatabaseEntities.Match.Find(matches[j].matchId + match.Count - temp_match).takimID1
                                    = BP_DatabaseEntities.Match.Find(matches[j].matchId).takimID1;
                            }
                            else
                            {
                                BP_DatabaseEntities.Match.Find(matches[j].matchId + match.Count - temp_match).takimID1
                                    = BP_DatabaseEntities.Match.Find(matches[j].matchId).takimID2;
                            }
                            BP_DatabaseEntities.SaveChanges();
                        }
                        else if (matches[j].takimID1 != null && matches[j].takimID2 == null && r.roundId == temp_round_id)
                        {
                            BP_DatabaseEntities.Match.Find(matches[j].matchId + match.Count - temp_match).takimID1
                                = BP_DatabaseEntities.Match.Find(matches[j].matchId).takimID1;
                            BP_DatabaseEntities.SaveChanges();
                        }
                        if (matches[j + 1].takimID1 != null && matches[j + 1].takimID2 != null && matches[j + 1].skor1 != null && matches[j + 1].skor2 != null)
                        {
                            if (BP_DatabaseEntities.Match.Find(matches[j + 1].matchId).skor1 > BP_DatabaseEntities.Match.Find(matches[j + 1].matchId).skor2)
                            {
                                BP_DatabaseEntities.Match.Find(matches[j].matchId + match.Count - temp_match).takimID2
                                    = BP_DatabaseEntities.Match.Find(matches[j + 1].matchId).takimID1;
                            }
                            else
                            {
                                BP_DatabaseEntities.Match.Find(matches[j].matchId + match.Count - temp_match).takimID2
                                    = BP_DatabaseEntities.Match.Find(matches[j + 1].matchId).takimID2;
                            }
                            BP_DatabaseEntities.SaveChanges();
                        }
                        else if (matches[j + 1].takimID1 != null && matches[j + 1].takimID2 == null && r.roundId == temp_round_id)
                        {
                            BP_DatabaseEntities.Match.Find(matches[j].matchId + match.Count - temp_match).takimID2
                                = BP_DatabaseEntities.Match.Find(matches[j + 1].matchId).takimID1;
                            BP_DatabaseEntities.SaveChanges();
                        }
                    }
                    k += 4;
                    temp_match++;
                }
            }
            ViewBag.turnuvaadi     = t.turnuvaAdi;
            ViewBag.turnuvaid      = id;
            ViewBag.turnuva_cesidi = t.turnuvaCesidi;
            return(RedirectToAction("Yonet", "Home", new { id = id }));
        }