Exemple #1
0
        public void ShouldSetScore()
        {
            // arrange
            var skill            = new Skill("C#");
            var skillEvaluator   = new Employee(100, "Jane Doe").SkillEvaluator;
            var targetLevel      = SkillLevel.Advanced;
            var currentLevel     = SkillLevel.Average;
            var evaluatee        = new Employee(101, "John Doe").Evaluatee;
            var evaluationPeriod = new EvaluationPeriod(TimeZoneInfo.Local, new DateTime(DateTime.Today.Year, 1, 1), new DateTime(DateTime.Today.Year, 12, 31));
            var evaluation       = new Evaluation(evaluatee, evaluationPeriod);
            var skillGoal        = new SkillGoal(skill, skillEvaluator, targetLevel, currentLevel, evaluation);
            var skillScore       = new SkillScore(skillGoal);

            skillEvaluator.AddNewSkillGoal(skill, skillEvaluator, targetLevel, currentLevel, evaluation);

            // act
            var skillLevelAchieved = SkillLevel.Advanced;

            skillScore.SetScore(skillLevelAchieved, 10, "Excelsior!!!");

            // assert
            Assert.Equal(10, skillScore.Score);
            Assert.Equal(currentLevel, skillEvaluator.SkillGoals.First().InitialSkillLevel.PersonalSkill.SkillLevel);
            Assert.Equal(skillLevelAchieved, skillScore.AchievedSkillLevel.PersonalSkill.SkillLevel);
        }
Exemple #2
0
 public RuneMetricsProfile(string name, SkillScore overall, CombatInfo combat, QuestsInfo quests, RuneMetricsSkillScores skills, IList <AdventurersLogActivity> activities)
 {
     Name       = name;
     Overall    = overall;
     Combat     = combat;
     Quests     = quests;
     Skills     = skills;
     Activities = activities;
 }
Exemple #3
0
        public void ShouldCreateInstance()
        {
            // arrange
            var skill            = new Skill("C#");
            var skillEvaluator   = new Employee(100, "Jane Doe").SkillEvaluator;
            var targetLevel      = SkillLevel.Advanced;
            var currentLevel     = SkillLevel.Average;
            var evaluatee        = new Employee(101, "John Doe").Evaluatee;
            var evaluationPeriod = new EvaluationPeriod(TimeZoneInfo.Local, new DateTime(DateTime.Today.Year, 1, 1), new DateTime(DateTime.Today.Year, 12, 31));
            var evaluation       = new Evaluation(evaluatee, evaluationPeriod);
            var skillGoal        = new SkillGoal(skill, skillEvaluator, targetLevel, currentLevel, evaluation);

            // act
            var result = new SkillScore(skillGoal);

            // assert
            Assert.Equal(skillGoal, result.SkillGoal);
        }
Exemple #4
0
        public static void ToSkillScore(XmlNode Node, SkillScore Score)
        {
            if (Node == null || Score == null)
            {
                return;
            }

            String Alias = Node["alias"].AttributeToString("name");

            if (Alias == Score.Name)
            {
                Score.Bonus = Node.AttributeToInt("value");
            }
            else if (Alias.Contains("Trained"))
            {
                Score.Trained |= Node.AttributeToInt("value") > 0;
            }

            if (Node.Name == "Stat")
            {
                XmlNode Child;
                Int32   Count = Node.ChildNodes.Count;

                for (Int32 I = 0; I < Count; I++)
                {
                    Child = Node.ChildNodes[I];

                    String Type  = Child.Attributes["type"]?.Value;
                    Int32  Value = Int32.Parse(Child.Attributes["value"]?.Value ?? "0");

                    if (!String.IsNullOrEmpty(Type))
                    {
                        if (Type == "Ability" || Type == "Feat" || Type == "Racial")
                        {
                            Score.Misc += Value;
                        }
                        else if (Type == "Armor Penalty")
                        {
                            Score.ArmorPenalty += Value;
                        }
                    }
                }
            }
        }
Exemple #5
0
        public Result ParseResult(string rawResponse)
        {
            ApiResult result = JsonConvert.DeserializeObject <ApiResult>(rawResponse);

            RuneMetricsError   error   = ParseError(result.Error);
            RuneMetricsProfile profile = null;

            if (error == RuneMetricsError.NoError)
            {
                string name = result.Name;

                int?       overallRank = result.Rank == null ? (int?)null : Int32.Parse(result.Rank.Replace(",", ""));
                SkillScore overall     = new SkillScore(HiScoresEntries.Overall, result.TotalXP, result.TotalSkill, overallRank);

                RuneMetricsProfile.CombatInfo combatInfo = new RuneMetricsProfile.CombatInfo(result.Magic, result.Ranged, result.Melee, result.CombatLevel);

                RuneMetricsProfile.QuestsInfo questsInfo = new RuneMetricsProfile.QuestsInfo(result.QuestsNotStarted, result.QuestsStarted, result.QuestsComplete);

                RuneMetricsSkillScores.Entry[] skillScoreEntries = new RuneMetricsSkillScores.Entry[result.SkillValues.Length + 1];
                skillScoreEntries[0] = new RuneMetricsSkillScores.Entry(HiScoresEntries.Overall.RuneMetricsId, overall.Level, overall.XP, overall.Rank);
                for (int i = 0; i < result.SkillValues.Length; i++)
                {
                    ApiSkillValueEntry entry = result.SkillValues[i];
                    long xp = entry.XP / 10;
                    skillScoreEntries[i + 1] = new RuneMetricsSkillScores.Entry(entry.Id, entry.Level, xp, entry.Rank);
                }
                RuneMetricsSkillScores skillScores = new RuneMetricsSkillScores(skillScoreEntries);

                AdventurersLogActivity[] activities = new AdventurersLogActivity[result.Activities.Length];
                for (int i = 0; i < result.Activities.Length; i++)
                {
                    ApiActivityEntry entry = result.Activities[i];
                    activities[i] = new AdventurersLogActivity(entry.Date, entry.Text, entry.Details);
                }

                profile = new RuneMetricsProfile(name, overall, combatInfo, questsInfo, skillScores, activities);
            }

            return(new Result(error, profile));
        }