protected void btnCleanPlayers_Click(object sender, EventArgs e)
 {
     PlayerManager pm = new PlayerManager();
     int rowsEffected = pm.DeleteTournamentPlayers(new Guid(this.Request.QueryString["TournamentId"].ToString()));
      this.lblMsg.Text = string.Format("{0} players have been deleted", rowsEffected);
     OnDataChange();
 }
        internal static void ScheduleGames(TournamentInfo tournamentInfo)
        {
            //check arguments that are needed
            if (tournamentInfo == null)
                throw new ArgumentNullException("tournamentInfo");

            if (tournamentInfo.TournamentId == Guid.Empty)
                throw new ArgumentNullException("TorunamentId");

            if (tournamentInfo.OrganisationId == Guid.Empty)
                throw new ArgumentNullException("OrganisationId");

            if (tournamentInfo.StartDate == new DateTime())
                throw new ArgumentException("Incorrect tournament start date");

            //set up helpers.
            //need current culture.
            CultureManager cultManager = new CultureManager(tournamentInfo.OrganisationId);

            PlayerManager playerManager = new PlayerManager();
            playerManager.AlgoType = tournamentInfo.PairAlgo;
            playerManager.MatchType = tournamentInfo.MatchType;

            DateTime startDate = tournamentInfo.StartDate;

            IEnumerable<PlayersEntity> playerPairs = playerManager.BuildPairs( tournamentInfo.TournamentId);

            int i = 0;
            int numberOfGamesPerDay = 3;
            DateTime dts = startDate;
            List<Matchup> scheds = new List<Matchup>();
            //schedule 3 games per day within 15 min intervals

            IEnumerator<DateTime> dayEnumerator = cultManager.GetNextBusinessDay(startDate).GetEnumerator();

            foreach (PlayersEntity matches in playerPairs)
            {
                if ((i % numberOfGamesPerDay) == 0)
                {
                    dayEnumerator.MoveNext();
                    dts = dayEnumerator.Current;
                    dts = new DateTime(dts.Year, dts.Month, dts.Day, tournamentInfo.TimeWindowStart, 0, 0);
                }

                DateTime dte = dts.AddMinutes(15);
                //insert here
                scheds.Add(new Matchup()
                                {
                                    TournamentId = tournamentInfo.TournamentId,
                                    PlayerAId = matches.PlayerAId,
                                    PlayerA = matches.PlayerAName,
                                    PlayerBId = matches.PlayerBId,
                                    PlayerB = matches.PlayerBName,
                                    Start = dts,
                                    End = dts.AddMinutes(15) // i need end date, otherwise i cant insert.
                                });
                dts = dte;
                i++;
            }

            using (TournaDataContext db = new TournaDataContext())
            {

                //db.TournamentMatchups.DeleteAllOnSubmit(db.TournamentMatchups.Where(x => x.TournamentId == tournamentInfo.TournamentId));
                //db.TournamentMatchups.InsertAllOnSubmit(scheds);
                //db.SubmitChanges();
            }
        }