public MainPage() { this.InitializeComponent(); dms = new List <DataModel>(); bvm = new BracketViewModel(); init(); }
public EnterCredentials() { this.InitializeComponent(); this.DataContextChanged += (s, e) => this.Bindings.Update(); bvm = new BracketViewModel(); init(); }
public ActionResult ViewBracket(int tournamentId, string bracketName) { Bracket bracket = null; try { bracket = new Bracket(tournamentId, bracketName); //this doesn't exist but building a bracketshould only get sets from one bracket } catch (SingleElimNotSupportedException e) { var errorVm = new BracketViewModel(null, null, bracketName, "Single elimination tournaments are not currently supported, sorry."); return(PartialView(errorVm)); } var winnersGrid = buildBracketGrid(bracket.winnersBracket, "right"); var losersGrid = buildBracketGrid(bracket.losersBracket, "right"); var vm = new BracketViewModel(winnersGrid, losersGrid, bracketName, null); return(PartialView(vm)); }
public void UpdateBrackets() { int updates = Math.Max(viewModel.BracketData.Count, Model.Brackets.Count); List <BracketModel> updatedBrackets = new List <BracketModel>(); for (int i = 0; i < updates; i++) { BracketViewModel newBracket = viewModel.BracketData.ElementAtOrDefault(i); BracketModel bracketModel = Model.Brackets.ElementAtOrDefault(i); //List<TournamentUsersBracketModel> users = new List<TournamentUsersBracketModel>(); if (newBracket != null) { if (bracketModel != null) { // We just need to update the data bracketModel.BracketTypeID = newBracket.BracketTypeID; bracketModel.MaxRounds = newBracket.NumberOfRounds; bracketModel.NumberOfGroups = newBracket.NumberOfGroups; bracketModel.NumberPlayersAdvance = newBracket.NumberPlayersAdvance; updatedBrackets.Add(bracketModel); //services.Tournament.UpdateBracket(bracketModel); } else if (bracketModel == null) { // We need to add this bracket bracketModel = new BracketModel() { MaxRounds = newBracket.NumberOfRounds, BracketTypeID = newBracket.BracketTypeID, NumberOfGroups = newBracket.NumberOfGroups, NumberPlayersAdvance = newBracket.NumberPlayersAdvance, Finalized = false, TournamentID = Model.TournamentID }; updatedBrackets.Add(bracketModel); //services.Tournament.AddBracket(bracketModel); } } } Model.Brackets = updatedBrackets; }
public ActionResult BracketForm(int bracketID = 0) { var utl = new Utility(); var bracket = utl.GetTournamentBracket(); var userID = User.Identity.GetUserId(); var round1Pos = Utility.Round1PairingOrder; var jQueryBracket = new List <List <string> >(); foreach (var region in bracket) { for (int i = 0; i < round1Pos.Count; i++) { Team teamName = region.Value.First(t => t.Seed == round1Pos[i]).Team; if (i % 2 == 0) { jQueryBracket.Add(new List <string>() { teamName.Name }); } else { jQueryBracket[jQueryBracket.Count - 1].Add(teamName.Name); } } } var userBrackets = _context.BracketEntries.Where(t => t.UserId == userID); BracketViewModel userBracketView = new BracketViewModel() { UserBrackets = userBrackets.ToList(), TournamentTeams = JsonConvert.SerializeObject(jQueryBracket), TournamentId = bracketID }; return(View("BracketForm", userBracketView)); }
public NoCredentialsNeeded() { this.InitializeComponent(); bvm = new BracketViewModel(); init(); }
//[Authorize] public IHttpActionResult SaveBracket(BracketViewModel bracket) { try { BracketEntry tournamentBracket; string currentUserId = User.Identity.GetUserId(); bool isNewBracket = false; tournamentBracket = _context.BracketEntries.Include(t => t.Picks).SingleOrDefault(t => t.Id == bracket.TournamentId); if (tournamentBracket == null) { var bracketName = bracket.TournamentEntryName is null ? User.Identity.Name + ' ' + DateTime.Now.ToShortDateString() : bracket.TournamentEntryName; tournamentBracket = new BracketEntry() { UserId = currentUserId, Name = bracketName, Picks = new List <BracketGamePick>() }; isNewBracket = true; } var utl = new Utility(); var teamList = utl.GetTournamentBracket(); List <TournamentTeams> currentPicks = new List <TournamentTeams>(); List <BracketGamePick> currentBracket = new List <BracketGamePick>(); var round1Seeds = Utility.Round1PairingOrder; List <int> roundsGame1 = new List <int>(); for (int i = 0; i < bracket.BracketPicks.Count; i++) { roundsGame1.Add(currentPicks.Count); for (var j = 0; j < bracket.BracketPicks[i].Count; j++) { var game = bracket.BracketPicks[i][j]; if (!(game[0] == 1 ^ game[1] == 1) || game.Count > 2) { currentPicks.Add(new TournamentTeams() { TeamId = 0 }); return(BadRequest()); //This game doesn't have only 1 winner } else { TournamentTeams team1, team2, winner; HomeOrAway winnerHomeAway; if (i == 0) { var region = j / 8; var team1Seed = round1Seeds[(j * 2) - (region * 16)]; var team2Seed = round1Seeds[((j * 2) + 1) - (region * 16)]; switch (region) { case 0: team1 = teamList[Regions.East].Single(t => t.Seed == team1Seed); team2 = teamList[Regions.East].Single(t => t.Seed == team2Seed); break; case 1: team1 = teamList[Regions.Midwest].Single(t => t.Seed == team1Seed); team2 = teamList[Regions.Midwest].Single(t => t.Seed == team2Seed); break; case 2: team1 = teamList[Regions.West].Single(t => t.Seed == team1Seed); team2 = teamList[Regions.West].Single(t => t.Seed == team2Seed); break; case 3: team1 = teamList[Regions.South].Single(t => t.Seed == team1Seed); team2 = teamList[Regions.South].Single(t => t.Seed == team2Seed); break; default: return(BadRequest()); } } else { team1 = currentPicks[(j * 2) + roundsGame1[i - 1]]; team2 = currentPicks[(j * 2) + roundsGame1[i - 1] + 1]; } if (game[1] == 1) { winner = team2; winnerHomeAway = HomeOrAway.Away; } else { winner = team1; winnerHomeAway = HomeOrAway.Home; } currentPicks.Add(winner); BracketGamePick pick; if (isNewBracket) { pick = new BracketGamePick() { RoundNo = i, GameNo = j, PickedTeamId = winner.Id, HomeOrAway = winnerHomeAway }; tournamentBracket.Picks.Add(pick); } else { var currentPick = tournamentBracket.Picks.Single(t => t.RoundNo == i & t.GameNo == j); if (currentPick == null) { pick = new BracketGamePick() { RoundNo = i, GameNo = j, PickedTeamId = winner.Id, HomeOrAway = winnerHomeAway }; tournamentBracket.Picks.Add(pick); } else { if (currentPick.PickedTeamId != winner.Id) { currentPick.PickedTeamId = winner.Id; currentPick.HomeOrAway = winnerHomeAway; } } } } } } if (isNewBracket) { _context.BracketEntries.Add(tournamentBracket); } if (ModelState.IsValid) { _context.SaveChanges(); } } catch (Exception ex) { var newMsg = ex; return(NotFound()); } return(Ok()); }