public static ICategoryDefinition CategoryDefinitionMapper(IProjectDefinition parentProjectDefinition, Model.CategoryDefinition categoryDefinition)
        {
            ICategoryDefinition category = null;

            try
            {
                category = ConfigurationComponentFactory().ConfigurationFactory <ICategoryDefinition>(typeof(ICategoryDefinition));
            }
            catch (Exception e)
            {
                throw new DataAccessComponentException(null, -1, "Configuration proxy factory failure - unable to create an instance of " + typeof(ICategoryDefinition) + "?", e);
            }


            try
            {
                category.Id               = categoryDefinition.Id;
                category.Enabled          = categoryDefinition.Enabled;
                category.ParentDefinition = parentProjectDefinition;
                category.CategoryDeclarationReferenceId   = categoryDefinition.CategoryDeclaration.Id;
                category.CategoryDeclarationReferenceName = categoryDefinition.CategoryDeclaration.Name;

                foreach (var ruleDef in categoryDefinition.RuleDefinitions)
                {
                    category.Rules.Add(ruleDef.Id, RuleDefinitionMapper(category, ruleDef));
                }
            }
            catch (Exception e)
            {
                throw new DataAccessComponentException(null, -1, "Mapping process failure?", e);
            }
            return(category);
        }
 public static ICategoryDefinition CategoryDefinitionMapper(Model.CategoryDefinition categoryDefinition)
 {
     return(CategoryDefinitionMapper(null, categoryDefinition));
 }