Beispiel #1
0
        public void gamesGrid_UpdateItem(int gameID)
        {
            using (PetanqueContext db = new PetanqueContext())
            {
                Game item = null;
                item = db.Games.Find(gameID);
                if (item == null)
                {
                    ModelState.AddModelError("", String.Format("Item with id {0} was not found", gameID));
                    return;
                }

                // change foreign keys to correct ids based on name selected during update
                item.Winner1Id = (from u in db.Users where u.Name == newWinner1Name select u.UserID).SingleOrDefault();
                item.Winner1   = (from u in db.Users where u.UserID == item.Winner1Id select u).SingleOrDefault();
                item.Winner2Id = (from u in db.Users where u.Name == newWinner2Name select u.UserID).SingleOrDefault();
                item.Winner2   = (from u in db.Users where u.UserID == item.Winner2Id select u).SingleOrDefault();
                item.Winner3Id = (from u in db.Users where u.Name == newWinner3Name select u.UserID).SingleOrDefault();
                item.Winner3   = (from u in db.Users where u.UserID == item.Winner3Id select u).SingleOrDefault();
                item.Loser1Id  = (from u in db.Users where u.Name == newLoser1Name select u.UserID).SingleOrDefault();
                item.Loser1    = (from u in db.Users where u.UserID == item.Loser1Id select u).SingleOrDefault();
                item.Loser2Id  = (from u in db.Users where u.Name == newLoser2Name select u.UserID).SingleOrDefault();
                item.Loser2    = (from u in db.Users where u.UserID == item.Loser2Id select u).SingleOrDefault();
                item.Loser3Id  = (from u in db.Users where u.Name == newLoser3Name select u.UserID).SingleOrDefault();
                item.Loser3    = (from u in db.Users where u.UserID == item.Loser3Id select u).SingleOrDefault();

                TryUpdateModel(item);
                if (ModelState.IsValid)
                {
                    db.SaveChanges();
                }
            }
        }
Beispiel #2
0
 public List <string> GetUserNamesWithoutDeletedOrNoone()
 {
     using (PetanqueContext db = new PetanqueContext())
     {
         return(db.Users.Where(u => u.Name != "[Deleted]" && u.Name != "[Noone]").Select(u => u.Name).ToList());
     }
 }
Beispiel #3
0
 public List <int> GetUserIds()
 {
     using (PetanqueContext db = new PetanqueContext())
     {
         return(db.Users.Select(u => u.UserID).ToList());
     }
 }
Beispiel #4
0
 public List <string> GetUserNames()
 {
     using (PetanqueContext db = new PetanqueContext())
     {
         return(db.Users.Select(u => u.Name).ToList());
     }
 }
Beispiel #5
0
 private List <int> GetUserScores()
 {
     using (PetanqueContext db = new PetanqueContext())
     {
         return(db.Users.Select(u => u.TestScore).ToList());
     }
 }
Beispiel #6
0
        public IQueryable <Game> gamesGrid_GetData()
        {
            // don't display grid if no name is selected
            if (ddUser.SelectedValue == "[Noone]")
            {
                return(null);
            }

            // get the id of the user name in the dropdown
            int userID = GetUserIdByName(ddUser.SelectedValue);

            // get league and year
            LeagueType league = (LeagueType)Enum.Parse(typeof(LeagueType), ddLeague.SelectedItem.Text);
            int        year   = Int32.Parse(ddYear.SelectedItem.Text);

            PetanqueContext db    = new PetanqueContext();
            var             query = db.Games.Where(g => (g.Winner1Id == userID ||
                                                         g.Winner2Id == userID ||
                                                         g.Winner3Id == userID ||
                                                         g.Loser1Id == userID ||
                                                         g.Loser2Id == userID ||
                                                         g.Loser3Id == userID) &&
                                                   g.League == league &&
                                                   g.Date.Year == year);

            return(query);
        }
Beispiel #7
0
        public IQueryable <Game> gamesGrid_GetData()
        {
            PetanqueContext db    = new PetanqueContext();
            var             query = db.Games;

            return(query);
        }
Beispiel #8
0
 public int GetUserIdByName(string name)
 {
     using (PetanqueContext db = new PetanqueContext())
     {
         return((from u in db.Users
                 where u.Name == name
                 select u.UserID).SingleOrDefault());
     }
 }
Beispiel #9
0
 public List <Game> GetGamesByUserReference(int id)
 {
     using (PetanqueContext db = new PetanqueContext())
     {
         return((from g in db.Games
                 where g.Winner1Id == id || g.Winner2Id == id || g.Winner3Id == id || g.Loser1Id == id || g.Loser2Id == id || g.Loser3Id == id
                 select g).ToList());
     }
 }
Beispiel #10
0
        public IQueryable <User> usersGrid_GetData([Control] AgeBracket?ageBracket)
        {
            PetanqueContext   db    = new PetanqueContext();
            IQueryable <User> query = db.Users.Where(u => (u.Name != "[Deleted]") && (u.Name != "[Noone]"));

            if (ageBracket != null)
            {
                query = query.Where(u => u.AgeRange == ageBracket);
            }

            return(query);
        }
Beispiel #11
0
        public void addUserForm_InsertItem()
        {
            var item = new User();

            TryUpdateModel(item);
            if (ModelState.IsValid)
            {
                using (PetanqueContext db = new PetanqueContext())
                {
                    db.Users.Add(item);
                    db.SaveChanges();
                }
            }
        }
Beispiel #12
0
 public string GetUserNameById(int id)
 {
     using (PetanqueContext db = new PetanqueContext())
     {
         string name = (from u in db.Users
                        where u.UserID == id
                        select u.Name).SingleOrDefault();
         if (name == "[Noone]")
         {
             name = "";
         }
         return(name);
     }
 }
Beispiel #13
0
        public void usersGrid_DeleteItem(int userId)
        {
            using (PetanqueContext db = new PetanqueContext())
            {
                // Change any games that reference this user to reference a dummy user instead
                List <Game> refGames    = GetGamesByUserReference(userId);
                int         dummyUserId = GetUserIdByName("[Deleted]");
                foreach (Game game in refGames)
                {
                    if (game.Winner1Id == userId)
                    {
                        game.Winner1Id = dummyUserId; db.Entry(game).State = EntityState.Modified;
                    }
                    if (game.Winner2Id == userId)
                    {
                        game.Winner2Id = dummyUserId; db.Entry(game).State = EntityState.Modified;
                    }
                    if (game.Winner3Id == userId)
                    {
                        game.Winner3Id = dummyUserId; db.Entry(game).State = EntityState.Modified;
                    }
                    if (game.Loser1Id == userId)
                    {
                        game.Loser1Id = dummyUserId; db.Entry(game).State = EntityState.Modified;
                    }
                    if (game.Loser2Id == userId)
                    {
                        game.Loser2Id = dummyUserId; db.Entry(game).State = EntityState.Modified;
                    }
                    if (game.Loser3Id == userId)
                    {
                        game.Loser3Id = dummyUserId; db.Entry(game).State = EntityState.Modified;
                    }
                }

                db.SaveChanges();

                var item = new User {
                    UserID = userId
                };
                db.Entry(item).State = EntityState.Deleted;
                try { db.SaveChanges(); }
                catch (DbUpdateConcurrencyException)
                {
                    ModelState.AddModelError("",
                                             String.Format("Item with id {0} no longer exists in the database.", userId));
                }
            }
        }
Beispiel #14
0
 public void gamesGrid_DeleteItem(int gameID)
 {
     using (PetanqueContext db = new PetanqueContext())
     {
         var item = new Game {
             GameID = gameID
         };
         db.Entry(item).State = EntityState.Deleted;
         try { db.SaveChanges(); }
         catch (DbUpdateConcurrencyException)
         {
             ModelState.AddModelError("",
                                      String.Format("Item with id {0} no longer exists in the database.", gameID));
         }
     }
 }
Beispiel #15
0
 private List <int> GetYears()
 {
     using (PetanqueContext db = new PetanqueContext())
     {
         List <int>  years = new List <int>();
         List <Game> games = db.Games.ToList();
         foreach (Game game in games)
         {
             if (!years.Contains(game.Date.Year))
             {
                 years.Add(game.Date.Year);
             }
         }
         return(years);
     }
 }
Beispiel #16
0
        public void usersGrid_UpdateItem(int userId)
        {
            using (PetanqueContext db = new PetanqueContext())
            {
                User item = null;
                item = db.Users.Find(userId);
                if (item == null)
                {
                    ModelState.AddModelError("", String.Format("Item with id {0} was not found", userId));
                    return;
                }

                TryUpdateModel(item);
                if (ModelState.IsValid)
                {
                    db.SaveChanges();
                }
            }
        }
Beispiel #17
0
        protected void insertButton_Click(object sender, EventArgs e)
        {
            // return and show error if date isn't valid
            DateTime dt;

            if (!DateTime.TryParseExact(tbDate.Text, "dd-MMM-yy", null, DateTimeStyles.None, out dt) == true)
            {
                // not a valid DateTime in short date string format
                lValidation.Text = "Please enter a valid date using the calendar";
                return;
            }

            using (PetanqueContext db = new PetanqueContext())
            {
                var item = new Game();

                item.Winner1Id = (from u in db.Users where u.Name == ddWinner1.SelectedItem.Text select u.UserID).SingleOrDefault();
                item.Winner1   = (from u in db.Users where u.UserID == item.Winner1Id select u).SingleOrDefault();
                item.Winner2Id = (from u in db.Users where u.Name == ddWinner2.SelectedItem.Text select u.UserID).SingleOrDefault();
                item.Winner2   = (from u in db.Users where u.UserID == item.Winner2Id select u).SingleOrDefault();
                item.Winner3Id = (from u in db.Users where u.Name == ddWinner3.SelectedItem.Text select u.UserID).SingleOrDefault();
                item.Winner3   = (from u in db.Users where u.UserID == item.Winner3Id select u).SingleOrDefault();
                item.Loser1Id  = (from u in db.Users where u.Name == ddLoser1.SelectedItem.Text select u.UserID).SingleOrDefault();
                item.Loser1    = (from u in db.Users where u.UserID == item.Loser1Id select u).SingleOrDefault();
                item.Loser2Id  = (from u in db.Users where u.Name == ddLoser2.SelectedItem.Text select u.UserID).SingleOrDefault();
                item.Loser2    = (from u in db.Users where u.UserID == item.Loser2Id select u).SingleOrDefault();
                item.Loser3Id  = (from u in db.Users where u.Name == ddLoser3.SelectedItem.Text select u.UserID).SingleOrDefault();
                item.Loser3    = (from u in db.Users where u.UserID == item.Loser3Id select u).SingleOrDefault();

                item.LosingScore = Int32.Parse(ddLosingScore.SelectedItem.Text);
                item.Date        = Convert.ToDateTime(tbDate.Text);
                item.League      = (LeagueType)Enum.Parse(typeof(LeagueType), ddLeague.SelectedItem.Text);

                db.Games.Add(item);
                db.SaveChanges();
            }

            Response.Redirect("~/Games");
        }
Beispiel #18
0
        private List <User> GetUsersByLeague(LeagueType league, int year)
        {
            using (PetanqueContext db = new PetanqueContext())
            {
                // Get list of all games played during the selected league
                List <Game> games = db.Games.Where(g => g.League == league).Where(g => g.Date.Year == year).ToList();
                if (games.Count == 0)
                {
                    // no games played so hide chart, display error message and return
                    Chart1.Visible = false;
                    lError.Text    = "No games were played during the selected time period.";
                    return(null);
                }

                Chart1.Visible = true;
                lError.Text    = "";

                // Get list of all valid petanque members (users)
                List <User> users = db.Users.Where(u => u.Name != "[Deleted]" && u.Name != "[Noone]").ToList();

                // Loop through each user and work out their league score. Store this in their Score class property
                foreach (User user in users)
                {
                    user.NumGamesWon  = 0;
                    user.NumGamesLost = 0;

                    // loop through all games in league to total number of wins and losses for the user
                    foreach (Game game in games)
                    {
                        if (game.Winner1 == user || game.Winner2 == user || game.Winner3 == user)
                        {
                            user.NumGamesWon++;
                        }
                        else if (game.Loser1 == user || game.Loser2 == user || game.Loser3 == user)
                        {
                            user.NumGamesLost++;
                        }
                    }

                    // if this is the selected user then store number of games won and lost (before they get reduced down to 8)
                    if (user.Name == ddUser.SelectedValue)
                    {
                        numGamesWonByUser  = user.NumGamesWon;
                        numGamesLostByUser = user.NumGamesLost;
                    }

                    // best 8 games of the league are used so adjust total games down to 8, removing losses first
                    if ((user.NumGamesWon + user.NumGamesLost) > 8)
                    {
                        if (user.NumGamesWon >= 8)
                        {
                            user.NumGamesWon  = 8;
                            user.NumGamesLost = 0;
                        }
                        else
                        {
                            user.NumGamesLost = 8 - user.NumGamesWon;
                        }
                    }

                    // Calculate score of all games, awarding 3 points for a win and 1 point for a loss
                    user.Score = 3 * user.NumGamesWon + user.NumGamesLost;

                    if (user.Name == ddUser.SelectedValue)
                    {
                        userScore = user.Score;
                    }
                }

                // finally, remove any non-scoring users from the list since they didn't play any games for this league
                users = users.Where(u => u.Score != 0).ToList();

                // return the user list with calucated scores for use in the chart
                return(users);
            }
        }