private void PopulateUserScoreBox(int userId)
        {
            List <Category> allCategories = Category.GetAllCategories();

            int    currentScore = 0;
            string resultData;

            foreach (Category cat in allCategories)
            {
                UserScore currentResultByCategory = UserScore.GetUserScoreData(this.currentUser, cat);

                if (currentResultByCategory == null ||
                    currentResultByCategory.Score == 0 ||
                    currentResultByCategory.Score == null)
                {
                    currentScore = 0;
                }
                else
                {
                    currentScore = (int)currentResultByCategory.Score;
                }

                resultData = cat.CategoryName + " - " + currentScore;

                PointOnCategory.Items.Add(new ListBoxItem {
                    Name    = "Id" + cat.Id,
                    Content = resultData
                });
            }
        }
Example #2
0
        public static void UpdateUserScore(GameUser user, Topic topic, ushort points)
        {
            List <UserScore> allUserScores     = App.DbManager.UserScore.Where(u => u.UserId == user.Id).ToList();
            List <Category>  categoriesForUser = allUserScores.Select(c => c.Category).ToList();

            bool isUpdate = false;

            foreach (Category cat in categoriesForUser)
            {
                if (cat.Id == topic.CategoryId)
                {
                    UserScore userScore = allUserScores.First(c => c.CategoryId == topic.CategoryId);
                    userScore.Score += points;
                    isUpdate         = true;
                }
            }

            // First result for that user and that category
            if (!isUpdate)
            {
                UserScore userResult = new UserScore(user, topic, points);
                App.DbManager.UserScore.Add(userResult);
            }

            App.DbManager.SaveChanges();
        }
 public void SavePointsFromTopic(ushort points)
 {
     UserScore.UpdateUserScore(this.currentUser, this.currentTopic, points);
 }