/// <summary>
        /// Insert a new Character
        /// </summary>
        public Character Insert(Character character)
        {
            // character defaults
            character.Level = 1;
            character.Active = true;

            // death knights start at 55, though
            if (character.Class == CharacterClass.DeathKnight)
            {
                character.Level = 55;
            }

            // perform entity validation
            var validator = new CharacterValidator(m_characters);
            var validationresults = validator.Validate(character, ruleSet: "default,Insert");

            if (!validationresults.IsValid)
                throw new ValidationException(validationresults.Errors);

            return m_characters.Insert(character);
        }
        /// <summary>
        /// validate updates to a Character
        /// </summary>
        public void Update(Character character)
        {
            // perform entity validation
            var validator = new CharacterValidator(m_characters);
            var validationresults = validator.Validate(character);

            if (!validationresults.IsValid)
                throw new ValidationException(validationresults.Errors);
        }
        public ValidationResult Validate()
        {
            var validator = new CharacterValidator();

            return(validator.Validate(this));
        }