public void SetComment(ScoreCard scoreCard, int scoreCriterionId, string comment, ScoreCriterionService scoreCriterionService)
        {
            if (scoreCard == null)
            {
                return;
            }

            if (scoreCard.ScorableCriteria == null || !scoreCard.ScorableCriteria.Any())
            {
                return;
            }

            var scorableCriterion = scoreCard.ScorableCriteria.FirstOrDefault(s => s.ScoreCriterion.Id == scoreCriterionId);

            if (scorableCriterion == null)
            {
                scorableCriterion = new ScorableCriterion(0, scoreCriterionService.Get(scoreCriterionId));
                scorableCriterion.SetComment(comment);
                scoreCard.ScorableCriteria.Add(scorableCriterion);
                Update(scoreCard);
            }
            else
            {
                scorableCriterion.SetComment(comment);
                AddOrUpdate(scorableCriterion);
            }
        }
        public static ScorableCriterion ConvertFromDto(this ScorableCriterionDto scorableCriterionDto)
        {
            var scorableCriterion = new ScorableCriterion(scorableCriterionDto.Id, ConvertFromDto(scorableCriterionDto.ScoreCriterion));

            scorableCriterion.SetScoreAndComment(scorableCriterionDto.Score, scorableCriterionDto.Comment);
            return(scorableCriterion);
        }
 public static ScorableCriterionDto ConvertToDto(this ScorableCriterion scorableCriterion)
 {
     return(new ScorableCriterionDto()
     {
         Id = scorableCriterion.Id,
         Comment = scorableCriterion.Comment,
         Score = scorableCriterion.Score,
         ScoreCriterion = ConvertToDto(scorableCriterion.ScoreCriterion)
     });
 }
 public void AddOrUpdate(ScorableCriterion scorableCriterion)
 {
     if (ScorableCriterionRepo.Exists(scorableCriterion.Id))
     {
         ScorableCriterionRepo.Update(scorableCriterion);
     }
     else
     {
         ScorableCriterionRepo.Add(scorableCriterion);
     }
 }
Beispiel #5
0
        public void AttemptToSetScoreHigherThanScoreMax()
        {
            ScoreRange     scoreRange     = new ScoreRange(0, 100);
            ScoreCriterion scoreCriterion = new ScoreCriterion("This is a description.", scoreRange);

            ScorableCriterion scorableCriterion = new ScorableCriterion(scoreCriterion);

            double score = 101;

            scorableCriterion.SetScoreAndComment(score, "");
        }
Beispiel #6
0
        public void CreateScorableCriterion()
        {
            ScoreRange     scoreRange     = new ScoreRange(0, 100);
            ScoreCriterion scoreCriterion = new ScoreCriterion("This is a description.", scoreRange);

            ScorableCriterion scorableCriterion = new ScorableCriterion(scoreCriterion);

            double score   = 99;
            string comment = "This is a comment about the score.";

            scorableCriterion.SetScoreAndComment(score, comment);

            Assert.AreEqual(score, scorableCriterion.Score);
            Assert.AreEqual(comment, scorableCriterion.Comment);
        }
Beispiel #7
0
        public void CreateScoreCard()
        {
            ScoreRange        scoreRange        = new ScoreRange(0, 100);
            ScoreCriterion    scoreCriterion    = new ScoreCriterion("This is a description.", scoreRange);
            ScorableCriterion scorableCriterion = new ScorableCriterion(scoreCriterion);

            ScoreCriterion    scoreCriterion2    = new ScoreCriterion("This is another description.", scoreRange);
            ScorableCriterion scorableCriterion2 = new ScorableCriterion(scoreCriterion2);

            ICollection <ScorableCriterion> scorableCriteria = new List <ScorableCriterion>()
            {
                scorableCriterion, scorableCriterion2
            };

            Contest     contest     = new Contest("Talent Show", timeKeeperId: "123", maxDuration: new TimeSpan(0, 5, 0), status: "Pending");
            Performance performance = new Performance("Singing a song.", new TimeSpan(hours: 0, minutes: 4, seconds: 0));
            Contestant  contestant  = new Contestant(performance, ruleViolationPenalty: 0, tieBreakerPoints: 0);
            Judge       judge       = new Judge("abc");

            ScoreCard scoreCard = new ScoreCard(contestant, judge, scorableCriteria);

            double score1  = 50;
            double score2  = 75;
            double average = new List <double>()
            {
                score1, score2
            }.Average();

            scoreCard.ScorableCriteria.ElementAt(0).SetScoreAndComment(score1, "Not very good.");
            scoreCard.ScorableCriteria.ElementAt(1).SetScoreAndComment(score2, "Pretty good.");

            Assert.AreEqual(2, scoreCard.ScorableCriteria.Count);
            Assert.AreEqual(score1, scoreCard.ScorableCriteria.ElementAt(0).Score);
            Assert.AreEqual(scoreCriterion, scoreCard.ScorableCriteria.ElementAt(0).ScoreCriterion);
            Assert.AreEqual(score2, scoreCard.ScorableCriteria.ElementAt(1).Score);
            Assert.AreEqual(scoreCriterion2, scoreCard.ScorableCriteria.ElementAt(1).ScoreCriterion);
            Assert.AreEqual(average, scoreCard.AverageScore);
            Assert.AreEqual(contestant, scoreCard.Contestant);
            Assert.AreEqual(judge, scoreCard.Judge);
        }