Exemplo n.º 1
0
        public static SemanticPropertiesSet CreateLink(string parentTitle, Uri parentUri, Term term)
        {
            var properties = new SemanticPropertiesSet
            {
                SemanticProperty.CreateValue <Href>((JToken)parentUri.ToString()),
                SemanticProperty.CreateValue <DisplayText>((JToken)parentTitle),
                SemanticProperty.CreateTerm <Rel>(term)
            };

            return(properties);
        }
        internal static SemanticProperty AddLink(this SemanticDocument doc, SemanticPropertiesSet link)
        {
            var linksRel = TermFactory.From <Links>();
            var links    = doc.Value[linksRel] ??
                           (SemanticProperty.CreateList(linksRel, new SemanticPropertiesList())).Then(
                sp => doc.Value.Add(sp));
            var semanticPropertiesList = links.Value.AsT3;

            semanticPropertiesList.Add(link);
            return(links);
        }
Exemplo n.º 3
0
        public static SemanticProperty Create(string title, MethodParameter[] methodParameters, Uri uri, Term term)
        {
            var operationSemProp = SemanticProperty.CreateSet(term, new SemanticPropertiesSet()
            {
                SemanticProperty.Create <ActionUrl>((JToken)uri.ToString()),
                SemanticProperty.Create <DisplayText>((JToken)title),
            });

            var fields = new SemanticPropertiesSet();

            foreach (var methodParameter in methodParameters)
            {
                var fieldProperties = new SemanticPropertiesSet();
                methodParameter.Type.Switch(
                    text => fieldProperties.Add(SemanticProperty.CreateTerm <FieldKind, TextField>()),
                    password => fieldProperties.Add(SemanticProperty.CreateTerm <FieldKind, PasswordField>()),
                    select =>
                {
                    fieldProperties.Add(SemanticProperty.CreateTerm <FieldKind, SelectField>());
                    var optionsList = new SemanticPropertiesList();
                    foreach (var selectOption in select.Options)
                    {
                        optionsList.Add(new SemanticPropertiesSet
                        {
                            SemanticProperty.CreateValue <DisplayText>(selectOption.Description),
                            SemanticProperty.CreateValue <FieldValue>(selectOption.OptionId)
                        });
                    }
                    var options = SemanticProperty.CreateList <Options>(optionsList);

                    fieldProperties.Add(options);
                }
                    );
                fieldProperties.Add(SemanticProperty.CreateValue <FieldName>((JToken)methodParameter.UrlPart.ToString()));
                var field = SemanticProperty.CreateSet(methodParameter.Term, fieldProperties);
                fields.Add(field);
            }
            operationSemProp.Value.Add(SemanticProperty.CreateSet(TermFactory.From <Fields>(), fields));
            return(operationSemProp);
        }