/// <summary>
        /// Initializes a new instance of the <see cref="RubricSetType" /> class.
        /// </summary>
        /// <param name="input">List of programs serving as competency contexts</param>
        /// <returns></returns>
        public static RubricType Map(Rubric input)
        {
            RubricType def = new RubricType(Guid.NewGuid(), string.Format("Rubric.{0}", input.ID))
            {
                Title = input.RubricName
            };

            List <RubricCriterionType>      criteriaList   = new List <RubricCriterionType>();
            List <RubricCriterionLevelType> criteriaLevels = new List <RubricCriterionLevelType>();

            RubricCriterionType ctype = null;

            foreach (var criteria in input.Criteria)
            {
                if (ctype == null)
                {
                    ctype = new RubricCriterionType(Guid.NewGuid())
                    {
                        Category    = criteria.CriteriaName,
                        Description = "Category Description",
                        Position    = criteria.Sequence,
                        Weight      = (float)criteria.Weight,
                    };
                }
                else if (ctype.Category != criteria.CriteriaName)
                {
                    criteriaList.Add(ctype);

                    ctype = new RubricCriterionType(Guid.NewGuid())
                    {
                        Category    = criteria.CriteriaName,
                        Description = "Category Description",
                        Position    = criteria.Sequence,
                        Weight      = (float)criteria.Weight,
                    };
                }
                else
                {
                    criteriaLevels.Add(new RubricCriterionLevelType(Guid.NewGuid())
                    {
                        Description       = criteria.LevelName,
                        Position          = criteria.MasteryLevelID,
                        Score             = (float)criteria.Score,
                        Quality           = criteria.MasteryLevel,
                        Feedback          = criteria.Points.ToString(),
                        RubricCriterionId = ctype.RubricCriterionId
                    });
                }
            }

            def.Criteria       = new Models.RubricCriteriaSetType(criteriaList);
            def.CriteriaLevels = new RubricCriterionLevelSetType(criteriaLevels);

            return(def);
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="RubricSetType" /> class.
        /// </summary>
        /// <param name="inputs">List of courses serving as competency contexts</param>
        /// <returns></returns>
        public static RubricSetType Map(List <Assessment> inputs)
        {
            var contexts = new List <RubricType>();

            foreach (var input in inputs)
            {
                RubricType def = Map(input.Rubric);
                contexts.Add(def);
            }

            RubricSetType type = new Models.RubricSetType(contexts);

            return(type);
        }