Exemplo n.º 1
0
        public ContestLearner Update(
            Contest contest,
            ContestLearner contestLearner,
            MicrosoftProfile microsoftProfile)
        {
            switch (contest.Type)
            {
            case ContestType.AccumulatedLevels:
                contestLearner.CurrentValue =
                    microsoftProfile.GameStatus.Level.LevelNumber - contestLearner.StartValue;
                break;

            case ContestType.AccumulatedPoints:
            case ContestType.Leaderboard:
                contestLearner.CurrentValue =
                    _experiencePointsCalculator.Calculate(
                        microsoftProfile.GameStatus.Level.LevelNumber,
                        microsoftProfile.GameStatus.CurrentLevelPointsEarned) - contestLearner.StartValue;
                break;

            case ContestType.Levels:
                contestLearner.CurrentValue =
                    microsoftProfile.GameStatus.Level.LevelNumber;
                break;

            case ContestType.Points:
                contestLearner.CurrentValue =
                    _experiencePointsCalculator.Calculate(
                        microsoftProfile.GameStatus.Level.LevelNumber,
                        microsoftProfile.GameStatus.CurrentLevelPointsEarned);
                break;
            }

            return(contestLearner);
        }
Exemplo n.º 2
0
        public ContestLearner Update(
            Contest contest,
            ContestLearner contestLearner,
            MicrosoftProfile microsoftProfile,
            bool forceUpdate = false)
        {
            switch (contest.Type)
            {
            case ContestType.Levels:
            case ContestType.AccumulatedLevels:
                if (contestLearner.StartValue == null || forceUpdate)
                {
                    contestLearner.StartValue =
                        microsoftProfile.GameStatus.Level.LevelNumber;
                }
                break;

            case ContestType.Points:
            case ContestType.AccumulatedPoints:
            case ContestType.Leaderboard:
                if (contestLearner.StartValue == null || forceUpdate)
                {
                    contestLearner.StartValue =
                        _experiencePointsCalculator.Calculate(
                            microsoftProfile.GameStatus.Level.LevelNumber,
                            microsoftProfile.GameStatus.CurrentLevelPointsEarned);
                }
                break;

            default:
                contestLearner.StartValue = 0;
                break;
            }

            return(contestLearner);
        }