private void LoadWindow()
 {
     try
     {
         context = new BadmintonContext();
         //if (!TestConnection())
         //    throw new Exception();
         context.Tournaments.Load();
         TournamentsList = new BindingList <Tournament>();
         TournamentsList = context.Tournaments.Local.ToBindingList();
         tournamentsListView.ItemsSource = TournamentsList;
         context.Cities.Load();
         context.Judges.Load();
         cmbBoxCities.ItemsSource = context.Cities.Local.OrderBy(p => p.CityName).ToList();
         cmbBoxJudges.ItemsSource = context.Judges.Local.OrderBy(p => p.JudgeLastName).ToList();
     }
     catch (Exception e)
     {
         waitWindow.Close();
         waitWindow = null;
         MessageBox.Show("Не удалось подключитсья к базе данных. Проверьте интернет соединение", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
         Close();
     }
     if (waitWindow != null)
     {
         waitWindow.Close();
     }
 }
Пример #2
0
 public JudgesAdd(BadmintonContext context)
 {
     InitializeComponent();
     Context = context;
     Context.Cities.Load();
     cmBoxCity.ItemsSource = Context.Cities.Local.ToBindingList();
 }
Пример #3
0
 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();
 }
Пример #4
0
 public EventList(BadmintonContext context, BindingList <Event> bindingListEvents)
 {
     InitializeComponent();
     AddedEvents = new List <Event>();
     EventsList  = bindingListEvents;
     Context     = context;
 }
Пример #5
0
        public Seed(BadmintonContext context, Event selectedEvent)
        {
            InitializeComponent();

            Context       = context;
            SelectedEvent = selectedEvent;
            TeamsLoad();
            gridPlayers.RowBackground = new SolidColorBrush(Colors.Transparent);
        }
Пример #6
0
 public CoachAdd()
 {
     InitializeComponent();
     context = new BadmintonContext();
     context.Cities.Load();
     cmbBoxCity.ItemsSource = context.Cities.Local.OrderBy(p => p.CityName).ToList();
     context.Clubs.Load();
     cmbBoxClub.ItemsSource = context.Clubs.Local.OrderBy(p => p.ClubName).ToList();
 }
Пример #7
0
 public Cities(BadmintonContext context)
 {
     InitializeComponent();
     Context = context;
     Context.Cities.Load();
     CitiesList = new BindingList <City>();
     CitiesList = Context.Cities.Local.ToBindingList();
     citiesListBox.ItemsSource = CitiesList;
 }
Пример #8
0
 public TournamentAdd()
 {
     InitializeComponent();
     context = new BadmintonContext();
     context.Cities.Load();
     context.Judges.Load();
     cmbBoxCities.ItemsSource = context.Cities.Local.OrderBy(p => p.CityName).ToList();
     cmbBoxJudges.ItemsSource = context.Judges.Local.OrderBy(p => p.JudgeLastName).ToList();
 }
Пример #9
0
 public Grades(BadmintonContext context)
 {
     InitializeComponent();
     Context = context;
     Context.Grades.Load();
     GradesList = new BindingList <Grade>();
     GradesList = Context.Grades.Local.ToBindingList();
     gradesListBox.ItemsSource = GradesList;
 }
Пример #10
0
 public Unions()
 {
     InitializeComponent();
     context = new BadmintonContext();
     context.Unions.Load();
     UnionsList = new BindingList <Union>();
     UnionsList = context.Unions.Local.ToBindingList();
     unionsListBox.ItemsSource = UnionsList;
 }
Пример #11
0
        public ReportFormer(Tournament tournament)
        {
            Context    = new BadmintonContext();
            Tournament = tournament;
            int id = Tournament.TournamentId;

            Context.TeamsTournaments.Where(p => p.Event.TournamentId == id).Load();
            Context.PlayersTeams.Where(p => p.TeamsTournament.Event.TournamentId == id).Load();
            Context.Players.Load();
        }
Пример #12
0
 public EventAdd()
 {
     InitializeComponent();
     context = new BadmintonContext();
     context.Types.Load();
     context.Categories.Load();
     cmbBoxCountDraw.ItemsSource = new EventListHelper().DrawsType;
     cmbBoxCategory.ItemsSource  = context.Categories.Local.OrderBy(p => p.CategoryName).ToList();
     cmbBoxType.ItemsSource      = context.Types.Local.ToList();
 }
Пример #13
0
        public ReportChooser(BadmintonContext context, Tournament tournament, EventsHelper eventsHelper)
        {
            InitializeComponent();
            Context    = context;
            Tournament = tournament;
            Context.Categories.Load();
            Context.Events.Where(p => p.TournamentId == Tournament.TournamentId).Load();

            CategoriesList            = new BindingList <Category>(eventsHelper.EventsList.Where(p => p.TournamentId == Tournament.TournamentId).Select(p => p.Category).Distinct().ToList());
            lstBoxReports.ItemsSource = CategoriesList;
        }
Пример #14
0
 public Clubs()
 {
     InitializeComponent();
     context = new BadmintonContext();
     context.Clubs.Load();
     ClubsList = new BindingList <Club>();
     ClubsList = context.Clubs.Local.ToBindingList();
     clubsListBox.ItemsSource = ClubsList;
     context.Cities.Load();
     cmbBoxAddCity.ItemsSource      = context.Cities.Local.OrderBy(p => p.CityName).ToList();
     cmbBoxSelectedCity.ItemsSource = context.Cities.Local.OrderBy(p => p.CityName).ToList();
 }
Пример #15
0
 public CoachesList(BadmintonContext context)
 {
     InitializeComponent();
     Context = context;
     Context.Coaches.Load();
     CoachList = new BindingList <Coach>();
     CoachList = Context.Coaches.Local.ToBindingList();
     coachesListView.ItemsSource = CoachList;
     Context.Cities.Load();
     cmbBoxCity.ItemsSource = Context.Cities.Local.OrderBy(p => p.CityName).ToList();
     Context.Clubs.Load();
     cmbBoxClub.ItemsSource = Context.Clubs.Local.OrderBy(p => p.ClubName).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();
        }
Пример #18
0
        /* 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);
        }
Пример #19
0
 public PlayerAdd()
 {
     InitializeComponent();
     context = new BadmintonContext();
     context.Cities.Load();
     context.Grades.Load();
     context.Coaches.Load();
     context.Clubs.Load();
     context.Unions.Load();
     cmbBoxCity.ItemsSource  = context.Cities.OrderBy(p => p.CityName).ToList();
     cmbBoxClub.ItemsSource  = context.Clubs.OrderBy(p => p.ClubName).ToList();
     cmbBoxGrade.ItemsSource = context.Grades.OrderBy(p => p.GradeName).ToList();
     cmbBoxUnion.ItemsSource = context.Unions.OrderBy(p => p.UnionName).ToList();
     cmbBoxCoach.ItemsSource = context.Coaches.OrderBy(p => p.CoachName).ToList();
 }
Пример #20
0
 public PlayerEdit(BadmintonContext context, Player selectedPlayer)
 {
     InitializeComponent();
     Context        = context;
     SelectedPlayer = selectedPlayer;
     DataContext    = SelectedPlayer;
     Context.Cities.Load();
     Context.Grades.Load();
     Context.Coaches.Load();
     Context.Clubs.Load();
     Context.Unions.Load();
     cmbBoxCity.ItemsSource  = Context.Cities.OrderBy(p => p.CityName).ToList();
     cmbBoxClub.ItemsSource  = Context.Clubs.OrderBy(p => p.ClubName).ToList();
     cmbBoxGrade.ItemsSource = Context.Grades.OrderBy(p => p.GradeName).ToList();
     cmbBoxUnion.ItemsSource = Context.Unions.OrderBy(p => p.UnionName).ToList();
     cmbBoxCoach.ItemsSource = Context.Coaches.OrderBy(p => p.CoachName).ToList();
 }
        public static Player ActivePlayertoPlayer(ActivePlayer activePlayer, BadmintonContext db)
        {
            Player       player = new Player();
            PlayerModels model  = db.Players.SingleOrDefault(x => x.ID == activePlayer.PlayerID);

            player.ID             = model.ID;
            player.FirstName      = model.FirstName;
            player.LastName       = model.LastName;
            player.Paid           = model.Paid;
            player.Level          = model.Level;
            player.Preference     = model.Preference;
            player.EnrollmentDate = model.EnrollmentDate;
            player.OnCourt        = activePlayer.OnCourt;
            player.Active         = model.Active;
            player.Waits          = activePlayer.Waits;
            player.GamesPlayed    = activePlayer.GamesPlayed;
            return(player);
        }
Пример #22
0
 public DoublesAdd(BadmintonContext context, Event selectedEvent, Player player, TornamentPlayersHelper tornamentPlayersHelper)
 {
     InitializeComponent();
     Context       = context;
     CurrentPlayer = player;
     TitleChanger(player, selectedEvent);
     TornamentPlayersHelper = tornamentPlayersHelper;
     PlayersHelper          = new PlayersHelper(Context);
     PlayersHelper.PlayersLoad();
     SelectedEvent = selectedEvent;
     if (!SelectedEvent.Type.TypeName.Equals("Микст"))
     {
         playersListView.ItemsSource = PlayersHelper.EventSelectionChangedPlayers(SelectedEvent).Where(p => p.PlayerSurName != player.PlayerSurName && p.PlayerName != player.PlayerName);
     }
     else if (player.Sex.Equals("Мужской"))
     {
         playersListView.ItemsSource = PlayersHelper.EventSelectionChangedPlayers(SelectedEvent).Where(p => p.Sex.Equals("Женский"));
     }
     else
     {
         playersListView.ItemsSource = PlayersHelper.EventSelectionChangedPlayers(SelectedEvent).Where(p => p.Sex.Equals("Мужской"));
     }
 }
Пример #23
0
        public MainPage(Tournament tournament)
        {
            WaitWindow waitWindow = new WaitWindow();

            waitWindow.Show();
            InitializeComponent();
            CurrentTournament = tournament;
            Nums     = new Nums();
            Context  = new BadmintonContext();
            ListPage = new ListPage(this);

            changerFrame.Navigate(ListPage);
            #region LoadContext
            Context.Cities.Load();
            Context.Grades.Load();
            Context.Clubs.Load();
            Context.Coaches.Load();
            Context.Unions.Load();
            Context.TeamsTournaments.Load();
            Context.PlayersTeams.Load();
            #endregion
            TornamentPlayersHelper = new TornamentPlayersHelper(Context, CurrentTournament);
            EventsHelper           = new EventsHelper(Context, CurrentTournament);
            PlayersHelper          = new PlayersHelper(Context);
            Context.Configuration.AutoDetectChangesEnabled = true;
            EventsHelper.EventsLoad();
            PlayersHelper.PlayersLoad();
            TornamentPlayersHelper.TeamTournamentsLoad();
            eventsListBox.ItemsSource = EventsHelper.EventsList;
            DrawsPage = new DrawsPage(this);
            if (eventsListBox.Items.Count > 0)
            {
                eventsListBox.SelectedIndex = 0;
            }

            waitWindow.Close();
        }
Пример #24
0
 public MemberController(BadmintonContext context)
 {
     _context = context;
 }
Пример #25
0
        /* 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();
                }
            }
        }
Пример #26
0
 public BookingController(BadmintonContext context)
 {
     _context = context;
 }
Пример #27
0
 public CourtController(BadmintonContext context)
 {
     _context = context;
 }
 public TornamentPlayersHelper(BadmintonContext context, Tournament current)
 {
     Context           = context;
     CurrentTournament = current;
 }
Пример #29
0
 public PlayersHelper(BadmintonContext context)
 {
     Context = context;
 }
        /* Returns a json of players that have
         * first name or last name that contains input
         */
        public static string GetSearchedPlayersJson(string input, BadmintonContext db)
        {
            var json = new JavaScriptSerializer().Serialize(db.Players.Where(x => x.FirstName.Contains(input) || x.LastName.Contains(input)));

            return(json);
        }