Пример #1
0
        private XElement GenerateFieldMarkup(string formHtmlId, ModelFieldMetadata field)
        {
            var element = new XElement(
                "Form.field",
                GenerateScopeSelectorAttribute(),
                new XAttribute("formId", formHtmlId),
                new XAttribute("propName", field.Property.Name.ToString(CasingStyle.Camel)));

            if (field.Label != null)
            {
                var labelText = new IdentifierName(field.Label, LanguageInfo.Entries.JavaScript(), style: CasingStyle.Pascal);
                element.Add(new XAttribute("label", labelText.ToString(CasingStyle.UserFriendly) + ":"));
            }

            element.Add(new JsxExpressionAttribute(
                            "getter",
                            LAMBDA(@m => IIF(@m, whenTrue: @m.DOT(field.Property), whenFalse: ANY("???")))));

            if (field.Direction == FieldDirection.Input)
            {
                element.Add(new JsxExpressionAttribute(
                                "setter",
                                LAMBDA((@m, @v) => @m.DOT(field.Property).ASSIGN(@v))));
            }

            element.Add(new JsxExpressionAttribute("validation", GenerateValidationObject(field)));

            return(element);
        }
Пример #2
0
        private AbstractExpression GenerateValidationObject(ModelFieldMetadata field)
        {
            return(INITOBJECT(() => {
                if (field.Direction == FieldDirection.Output)
                {
                    KEY("isOutput", ANY(true));
                }

                if (field.IsRequired)
                {
                    KEY("required", ANY(true));
                }

                if (field.MaxLength.HasValue)
                {
                    KEY("maxLength", ANY(field.MaxLength.Value));
                }
            }));
        }
        public IModelFieldMetadata GetMetadataForField()
        {
            IModelFieldMetadata modelFieldMetadata = new ModelFieldMetadata();

            return(modelFieldMetadata); // TODO map results with modelFieldMetadata
        }