protected override ScoreCard GetItemFromDataReader(IDataReader reader)
        {
            int id           = Convert.ToInt32(reader.GetColumnValue(ID));
            int contestantId = Convert.ToInt32(reader.GetColumnValue(CONTESTANTID));
            int judgeId      = Convert.ToInt32(reader.GetColumnValue(JUDGEID));

            Contestant contestant = new ContestantRepo().Get(contestantId);
            Judge      judge      = new JudgeRepo().Get(judgeId);
            ICollection <ScorableCriterion> scorableCriteria = new ScorableCriterionRepo().GetWhereParentForeignKeyIs(id);

            return(new ScoreCard(id, contestant, judge, scorableCriteria));
        }
        private void UpdateScoreCardScorableCriteria(ScoreCard scoreCard)
        {
            ScorableCriterionRepo repo = new ScorableCriterionRepo();

            foreach (ScorableCriterion scorableCriterion in scoreCard.ScorableCriteria)
            {
                if (repo.Exists(scorableCriterion.Id))
                {
                    repo.Update(scorableCriterion);
                }
                else
                {
                    repo.Add(scorableCriterion);
                    new ScoreCardScorableCriterionRepo().Add(new ScoreCardScorableCriterion(scoreCard.Id, scorableCriterion.Id));
                }
            }
        }