public static CodeTypeModel GetCodeTypeModel(CodeType codeType, IReflectedTypesService reflectedTypesService)
        {
            var prj        = codeType.ProjectItem.ContainingProject;
            var name       = codeType.Name;
            var properties = codeType.GetPublicMembers().OfType <CodeProperty>()
                             .Select(p => new CodePropertyModel(p.Name, reflectedTypesService.GetType(prj, p.Type.AsFullName)))
                             .ToArray();

            return(new CodeTypeModel(name, properties));
        }
        public static CodeTypeModel[] GetCodeTypeModels(Project project,
                                                        ICodeTypeService codeTypeService, IReflectedTypesService reflectedTypesService)
        {
            var types  = codeTypeService.GetAllCodeTypes(project).ToArray();
            var models = types.Select(t => ModelUtils.GetCodeTypeModel(t, reflectedTypesService)).ToArray();

            return(models);
        }