예제 #1
0
        PropertyRenderInformation renderPropertyDeclaration(AstNode node)
        {
            var propDecl = node as PropertyDeclaration;

            if (propDecl == null)
            {
                return(new PropertyRenderInformation()
                {
                    anythingElse = new NameAndTypeRenderInformation()
                    {
                        name = chompedString(node.ToString())
                    },
                });
            }

            var nameAndType = new NameAndTypeRenderInformation()
            {
                name = chompedString(propDecl.Name),
                type = chompedString(propDecl.ReturnType.ToString()),
            };

            var commands = new[] {
                "ReactiveCommand",
                "ReactiveAsyncCommand",
            };

            if (propDecl.Attributes.Any(x => x.ToString().StartsWith("[Once]") || commands.Contains(propDecl.ReturnType.ToString())))
            {
                return(new PropertyRenderInformation()
                {
                    onceProp = nameAndType,
                });
            }

            if (!propDecl.Setter.IsNull)
            {
                return(new PropertyRenderInformation()
                {
                    readWriteProp = nameAndType,
                });
            }
            else
            {
                return(new PropertyRenderInformation()
                {
                    outputProp = nameAndType,
                });
            }
        }
예제 #2
0
        PropertyRenderInformation renderPropertyDeclaration(AstNode node)
        {
            var propDecl = node as PropertyDeclaration;

            if (propDecl == null) {
                return new PropertyRenderInformation() {
                    anythingElse = new NameAndTypeRenderInformation() { name = chompedString(node.ToString()) },
                };
            }

            var nameAndType = new NameAndTypeRenderInformation() {
                name = chompedString(propDecl.Name), 
                type = chompedString(propDecl.ReturnType.ToString()),
            };

            var commands = new[] {
                "ReactiveCommand",
                "ReactiveAsyncCommand",
            };

            if (propDecl.Attributes.Any(x => x.ToString().StartsWith("[Once]") || commands.Contains(propDecl.ReturnType.ToString()))) {
                return new PropertyRenderInformation() { onceProp = nameAndType, };
            }

            if (!propDecl.Setter.IsNull) {
                return new PropertyRenderInformation() { readWriteProp = nameAndType, };
            } else {
                return new PropertyRenderInformation() { outputProp = nameAndType, };
            }
        }