示例#1
0
        // GET: League/Scoring
        public ActionResult LeagueScoring(TournamentDetailsMvcModel model, int id, int divisionId = 0, int roundId = 0)
        {
            TournamentDetailsMvcModel input = new TournamentDetailsMvcModel();
            var t = GlobalConfiguration.Connection.Tournaments_GetByID(id);


            input.TournamentName   = t.TournamentName;
            input.Id               = t.Id;
            input.DivisionsEntered = t.DivisionsEntered;
            input.DivisionsEntered = GlobalConfiguration.Connection.TeamGroupEntries_GetSpecific(t.DivisionsEntered);

            if (divisionId != 0)
            {
                DivisionModel division = t.DivisionsEntered.First(x => x.Id == divisionId);
                division = GlobalConfiguration.Connection.GetGroups(division);
                input.SelectedDivision = division;
                foreach (GroupModel gm in division.Groups)
                {
                    var activeFound = false;

                    for (int i = 0; i < gm.Rounds.Count; i++)
                    {
                        RoundStatus status = RoundStatus.Locked;

                        if (!activeFound)
                        {
                            if (gm.Rounds[i].TrueForAll(x => x.Winner != null))
                            {
                                status = RoundStatus.Complete;
                            }
                            else
                            {
                                status      = RoundStatus.Active;
                                activeFound = true;
                                if (roundId == 0)
                                {
                                    roundId = i + 1;
                                }
                            }
                        }

                        input.Rounds.Add(new RoundMvcModel {
                            RoundName = "Round " + (i + 1), RoundNumber = i + 1, RoundId = roundId, Status = status, GroupId = gm.Id
                        });


                        input.TempMatchups = GetMatchups(gm.Rounds[i], input.Id, divisionId, gm.Id, roundId, status);

                        foreach (MatchupMvcModel mvc in input.TempMatchups)
                        {
                            input.Matchups.Add(mvc);
                        }
                    }
                }
            }

            return(View(input));
        }
示例#2
0
        // GET: League/Details
        public ActionResult DetailLeague(int id, int roundId = 0)
        {
            try
            {
                TournamentDetailsMvcModel input = new TournamentDetailsMvcModel();
                TournamentModel           t     = GlobalConfiguration.Connection.Tournaments_GetByID(id);

                input.TournamentName = t.TournamentName;
                input.Id             = t.Id;
                input.Active         = t.Active;

                return(View(input));
            }
            catch
            {
                return(RedirectToAction("Index", "Home"));
            }
        }
示例#3
0
        public ActionResult EditLeague(TournamentDetailsMvcModel model, string listOfTeams)
        {
            TournamentModel t = new TournamentModel {
                Id = model.Id
            };

            t = GlobalConfiguration.Connection.Tournaments_GetByID(t.Id);
            t.TournamentName      = model.TournamentName;
            t.Active              = model.Active;
            t.TeamsEntered        = model.TeamsEntered;
            t.TournamentStartDate = model.TournamentDateStart.Add(model.TournamentTimeStart);
            t.TournamentEndDate   = model.TournamentDateEnd.Add(model.TournamentTimeEnd);
            int divisionsToAdd    = Int32.Parse(model.DivisionsToAdd);
            int divisionsToRemove = Int32.Parse(model.DivisionsToRemove);
            int numberOfDivisions = t.DivisionsEntered.Count;

            string[] split = listOfTeams.Split(new[] { ']' },
                                               StringSplitOptions.RemoveEmptyEntries);
            string[] split3 = Regex.Split(split[t.DivisionsEntered.Count], @"\D+");

            SeedTeams(t, split, split3);
            AdjustDivisionSize(t, divisionsToAdd, divisionsToRemove, numberOfDivisions);

            GlobalConfiguration.Connection.EditTournament(t);

            if (t.Active)
            {
                GlobalConfiguration.Connection.TeamGroup_Insert(t.DivisionsEntered);
                t.DivisionsEntered = GlobalConfiguration.Connection.TeamGroupEntries_GetSpecific(t.DivisionsEntered);

                foreach (DivisionModel dm in t.DivisionsEntered)
                {
                    foreach (GroupModel gm in dm.Groups)
                    {
                        TournamentRoundRobin.CreateRounds(gm);
                        GlobalConfiguration.Connection.SaveGroupRounds(gm, t.Id);
                    }
                }
            }


            return(RedirectToAction("DetailLeague", "Tournament", new { id = model.Id }));
        }
示例#4
0
        public ActionResult Scoreboard(int id)
        {
            TournamentDetailsMvcModel   input = new TournamentDetailsMvcModel();
            List <TournamentEntryModel> tem   = new List <TournamentEntryModel>();
            var t = GlobalConfiguration.Connection.Tournaments_GetByID(id);

            input.TournamentName       = t.TournamentName;
            input.Id                   = t.Id;
            input.DivisionsEntered     = t.DivisionsEntered;
            input.DivisionsEntered     = GlobalConfiguration.Connection.TeamGroupEntries_GetSpecific(t.DivisionsEntered);
            input.SelectedDivisionList = input.DivisionsEntered.Select(x => new SelectListItem {
                Text = x.DivisionName, Value = x.Id.ToString()
            }).ToList();
            input.SelectedTeamsList = input.TeamsEntered.Select(x => new SelectListItem {
                Text = x.TeamName, Value = x.Id.ToString()
            }).ToList();

            input.TeamsEntered = GlobalConfiguration.Connection.GetTeamsByTournamentId(t.Id);

            foreach (TeamModel tm in input.TeamsEntered)
            {
                var temTemp = GlobalConfiguration.Connection.GetTournamentEntry(tm.Id, t.Id);
                tem.Add(temTemp);
            }

            List <TournamentEntryModel> result = tem.OrderByDescending(n => n.Wins).ThenByDescending(n => n.RoundDifference).ToList();

            input.ScoredTeams = result;

            foreach (DivisionModel dm in input.DivisionsEntered)
            {
                foreach (GroupModel gm in dm.Groups)
                {
                    gm.TeamsEntered = gm.TeamsEntered.OrderBy(b => result.FindIndex(a => a.TeamId == b.Id)).ToList();
                }
            }


            return(View(input));
        }
示例#5
0
        // GET: League/Edit
        public ActionResult EditLeague(int id)
        {
            try
            {
                TournamentDetailsMvcModel input = new TournamentDetailsMvcModel();
                TournamentModel           t     = GlobalConfiguration.Connection.Tournaments_GetByID(id);

                input.TournamentName       = t.TournamentName;
                input.Id                   = t.Id;
                input.TeamsEntered         = t.TeamsEntered;
                input.TournamentDateStart  = t.TournamentStartDate.Date;
                input.TournamentDateEnd    = t.TournamentEndDate.Date;
                input.TournamentTimeStart  = t.TournamentStartDate.TimeOfDay;
                input.TournamentTimeEnd    = t.TournamentEndDate.TimeOfDay;
                input.DivisionsEntered     = t.DivisionsEntered;
                input.SelectedDivisionList = input.DivisionsEntered.Select(x => new SelectListItem {
                    Text = x.DivisionName, Value = x.Id.ToString()
                }).ToList();
                input.SelectedTeamsList = input.TeamsEntered.Select(x => new SelectListItem {
                    Text = x.TeamName, Value = x.Id.ToString()
                }).ToList();

                for (int i = 0; i < input.DivisionsEntered.Count + 1; i++)
                {
                    input.SelectListRemove.Add(new SelectListItem {
                        Value = i.ToString(), Text = i.ToString()
                    });
                }

                return(View(input));
            }
            catch
            {
                return(RedirectToAction("Index", "Home"));
            }
        }