public void Render(CodeDom.CodeObject target, DesignObject designObject)
        {
            var enumeration = (Enumeration)designObject;

            var enumCodeObject = new EnumerationDeclaration
            {
                Name = enumeration.Name
            };

            (target as CodeDom.Module).TypeDeclarations.Add(enumCodeObject);
            enumCodeObject.Scope = enumeration.Scope.Convert();

            OnRenderEnumDeclaration(enumCodeObject);

            foreach (var member in enumeration.Values)
            {
                var memberDeclaration = new EnumMemberDeclaration
                {
                    Name  = member.Name,
                    Value = member.Value
                };

                OnRenderEnumMemberDeclaration(memberDeclaration);

                enumCodeObject.Values.Add(memberDeclaration);
            }

            OnAfterRenderEnumDeclaration(enumCodeObject);
        }
        public void Render(CodeDom.CodeObject target, DesignObject designObject)
        {
            var classDeclaration = (Class)designObject;

            var classCodeObject = new ClassDeclaration
            {
                Name = classDeclaration.Name
            };

            classCodeObject.Scope = classDeclaration.Scope.Convert();
            (target as CodeDom.Module).TypeDeclarations.Add(classCodeObject);

            foreach (var member in classDeclaration.Properties)
            {
                var propertyDeclaration = new PropertyDeclaration
                {
                    Scope    = member.Scope.Convert(),
                    Name     = member.Name,
                    Type     = member.Type.Convert(),
                    Nullable = !member.Required,
                    ReadOnly = member.ReadOnly
                };

                classCodeObject.Properties.Add(propertyDeclaration);
            }
        }
        public void Render(CodeDom.CodeObject target, DesignObject designObject)
        {
            var module = Ensure.Is <CodeDom.Module>(target, nameof(target));

            var entityDeclaration = Ensure.Is <Entity>(designObject, nameof(designObject));

            RenderPoco(module, entityDeclaration);

            var database = ProjectManager.GetDatabase(entityDeclaration.Database);

            RenderTable(database, entityDeclaration);
            RenderRepository(database, entityDeclaration);
        }