Пример #1
0
        public ActionResult Edit(MatchBracket matchBracket)
        {
            try
            {
                User user = (User)Session["user"];
                matchBracket.Match = MatchManager.LoadById(matchBracket.MatchId);
                matchBracket.Match.ReportingPlayer = user;
                matchBracket.Match.Winner          = UserManager.LoadById(matchBracket.WinnerId);

                MatchManager.Update(matchBracket.Match);
                matchBracket.Bracket = BracketManager.LoadById(matchBracket.BracketId);

                if (matchBracket.Match.Winner != null)
                {
                    bool isDivisionOver = true;
                    for (int i = matchBracket.Bracket.GetFirstRoundOfDivision() - 1; i < matchBracket.Bracket.GetLastRoundOfDivision(); i++)
                    {
                        isDivisionOver = matchBracket.Bracket.SortedMatches[i].Winner != null;
                        //end the loop if any of the matches are not finished
                        if (isDivisionOver == false)
                        {
                            break;
                        }
                    }

                    if (isDivisionOver)
                    {
                        for (int i = matchBracket.Bracket.GetFirstRoundOfDivision() - 1; i < matchBracket.Bracket.GetLastRoundOfDivision(); i += 2)
                        {
                            Match match = new Match();
                            match.Round = (int)Math.Ceiling((double)matchBracket.Bracket.SortedMatches[i].Round / 2) + matchBracket.Bracket.OriginalRoundCount;
                            if (i + 1 == matchBracket.Bracket.GetLastRoundOfDivision())
                            {
                                match.Player1         = matchBracket.Bracket.SortedMatches[i].Winner;
                                match.ReportingPlayer = match.Player1;
                                match.Winner          = match.Player1;
                                match.Division        = matchBracket.Bracket.CurrentDivision + 1;
                            }
                            else
                            {
                                match.Player1  = matchBracket.Bracket.SortedMatches[i].Winner;
                                match.Player2  = matchBracket.Bracket.SortedMatches[i + 1].Winner;
                                match.Division = matchBracket.Bracket.CurrentDivision + 1;
                            }
                            matchBracket.Bracket.Matches.Add(match);
                            MatchManager.Insert(match, matchBracket.Bracket.Id);
                        }
                        matchBracket.Bracket.CurrentDivision++;
                        BracketManager.Update(matchBracket.Bracket);
                    }
                }
                return(RedirectToAction("Details", "Bracket", new { @id = matchBracket.BracketId }));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #2
0
 public ActionResult Edit(Bracket bracket)
 {
     try
     {
         // TODO: Add update logic here
         BracketManager.Update(bracket);
         return(RedirectToAction("Home"));
     }
     catch (Exception ex)
     {
         ViewBag.Message = ex.Message;
         return(View(bracket));
     }
 }