private void BtnAddCity_OnClick(object sender, RoutedEventArgs e) { Cities cities = new Cities(context); cities.ShowDialog(); context.SaveChanges(); cmbBoxCity.ItemsSource = context.Cities.Local.OrderBy(p => p.CityName).ToList(); }
private void btnAdd_Click(object sender, RoutedEventArgs e) { JudgesAdd judgesAdd = new JudgesAdd(context); judgesAdd.ShowDialog(); if (judgesAdd.NewJudge != null) { context.Judges.Local.Add(judgesAdd.NewJudge); } context.SaveChanges(); }
public void btnAdd_Click(object sender, RoutedEventArgs e) { TournamentAdd tournamentAdd = new TournamentAdd(); tournamentAdd.ShowDialog(); if (tournamentAdd.NewTournament != null) { context.Tournaments.Local.Add(tournamentAdd.NewTournament); } context.SaveChanges(); context.Judges.Load(); context.Cities.Load(); cmbBoxJudges.ItemsSource = context.Judges.Local.OrderBy(p => p.JudgeLastName).ToList(); cmbBoxCities.ItemsSource = context.Cities.Local.OrderBy(p => p.CityName).ToList(); }
static void Main(string[] args) { try { // Стратегия работы с базой данных Database.SetInitializer(new DropCreateDatabaseAlways <BadmintonContext>()); var cities = new List <City>() { new City() { CityName = "Kharkov" } }; using (var context = new BadmintonContext()) { cities.ForEach(c => context.Cities.Add(c)); context.SaveChanges(); } Console.WriteLine("База данных на SQL Server создана"); } catch (System.Exception ex) { Console.WriteLine("База данных не создана. \n Ошибка:\n " + ex.ToString()); } Console.WriteLine("Нажмите любую клавишу, чтобы выйти..."); Console.ReadKey(); }
public ActionResult Create(PlayerModels model) { if (ModelState.IsValid) { db.Players.Add(model); db.SaveChanges(); return(RedirectToAction("Details", model.ID)); } return(RedirectToAction("List")); }
private void btnAddJudge_Click(object sender, RoutedEventArgs e) { JudgesAdd judgesAdd = new JudgesAdd(context); judgesAdd.ShowDialog(); if (judgesAdd.NewJudge != null) { context.Judges.Local.Add(judgesAdd.NewJudge); } context.SaveChanges(); cmbBoxJudges.ItemsSource = context.Judges.Local.OrderBy(p => p.JudgeLastName).ToList(); }
/* Adds player to ActivePlayers table */ public static void AddActivePlayer(Player model, BadmintonContext db) { if (db.ActivePlayers.SingleOrDefault(x => x.PlayerID == model.ID) == null) { ActivePlayer newPlayer = new ActivePlayer(); newPlayer.OnCourt = false; newPlayer.PlayerID = model.ID; newPlayer.Waits = 0; newPlayer.GamesPlayed = 0; db.ActivePlayers.Add(newPlayer); db.SaveChanges(); } }
/* Updates player view model * when a player is assigned to a court */ public static void UpdatePlayerOnCourt(Player player, BadmintonContext context) { var id = player.ID; player.Waits = 0; player.OnCourt = true; player.GamesPlayed++; ActivePlayer updated = context.ActivePlayers.Single(x => x.PlayerID == id); updated.Waits = 0; updated.OnCourt = true; updated.GamesPlayed++; context.SaveChanges(); }
/* Assigns every player to be off court * Assigns new players to courts */ public static void Rotate(BadmintonContext db, List <Player> players, TimeSlot ts) { foreach (var p in db.ActivePlayers) { p.OnCourt = false; db.SaveChanges(); } List <ActivePlayer> temp = db.ActivePlayers.ToList(); foreach (var i in temp) { players.Add(PlayerHelper.ActivePlayertoPlayer(i, db)); } MakeTimeSlot(ts, players, db); }
private void BtnOk_OnClick(object sender, RoutedEventArgs e) { context.SaveChanges(); Close(); }
/* Creates a TimeSlot using a list of activeplayers * Assigns players on Courts based on wait-time(primary factor) and level of player * Time of arrival is automatically taken care of * Algorithm: * 1.Get a players with the highest wait-time * 2.Get players with the same level as the player in 1. * 3.Assign the players to a court * 4.If not enough players in that player's level or the wait-time difference is greater than 2, * find players with the highest wait-time in other levels * 5.Repeat 1-4 until all courts are filled * 6.Update the players on the court to "on court" and reset their wait-time to zero * 7.Increment the wait-time of the off court players by 1 * The ActivePlayersTable is updated afterwards */ public static void MakeTimeSlot(TimeSlot ts, List <Player> players, BadmintonContext context) { Random random = new Random(); int numOfCourts = TimeSlot.getNumOfCourts(); List <List <Player> > playergrid = new List <List <Player> >(); List <int> onCourtIDs = new List <int>(); int numOfLevels = 5; int count; int lvl; for (int i = 0; i < numOfLevels; i++) { playergrid.Add(new List <Player>()); } for (int j = 0; j < players.Count; j++) { playergrid[players.ElementAt(j).Level - 1].Add(players.ElementAt(j)); } for (int i = 0; i < numOfCourts; i++) { Court court = new Court(); count = 0; players = players.OrderByDescending(x => x.Waits).ToList(); for (int j = 0; j < players.Count; j++) { if (count >= Court.intGetNumOfPlayersOnCourt()) { break; } lvl = players.ElementAt(j).Level - 1; playergrid[lvl] = playergrid[lvl].OrderByDescending(x => x.Waits).ToList(); for (int k = 0; k < playergrid[lvl].Count; k++) { if (count >= Court.intGetNumOfPlayersOnCourt()) { break; } if (playergrid[lvl][k].OnCourt == false) { PlayerHelper.UpdatePlayerOnCourt(playergrid[lvl][k], context); court.addPlayer(playergrid[lvl][k]); count++; } } if (count < Court.intGetNumOfPlayersOnCourt()) { lvl++; if (lvl < 5) { playergrid[lvl] = playergrid[lvl].OrderByDescending(x => x.Waits).ToList(); for (int k = 0; k < playergrid[lvl].Count; k++) { if (count >= Court.intGetNumOfPlayersOnCourt()) { break; } if (playergrid[lvl][k].OnCourt == false) { PlayerHelper.UpdatePlayerOnCourt(playergrid[lvl][k], context); court.addPlayer(playergrid[lvl][k]); count++; } } } if (count < Court.intGetNumOfPlayersOnCourt()) { lvl = lvl - 2; if (lvl >= 0) { playergrid[lvl] = playergrid[lvl].OrderByDescending(x => x.Waits).ToList(); for (int k = 0; k < playergrid[lvl].Count; k++) { if (count >= Court.intGetNumOfPlayersOnCourt()) { break; } if (playergrid[lvl][k].OnCourt == false) { PlayerHelper.UpdatePlayerOnCourt(playergrid[lvl][k], context); court.addPlayer(playergrid[lvl][k]); count++; } } } } } } ts.addCourt(court); } for (int q = 0; q < playergrid.Count; q++) { for (int p = 0; p < playergrid[q].Count; p++) { if (playergrid[q][p].OnCourt == false) { playergrid[q][p].Waits++; //update every player's wait times } } } foreach (var p in players) { if (p.OnCourt == false) { ActivePlayer updated = context.ActivePlayers.Single(x => x.PlayerID == p.ID); updated.Waits++; context.SaveChanges(); } } }