Exemplo n.º 1
0
        private XElement WhereComparison(ComparisonOperator comparisonOperator, [NotNull] FieldRefModel fieldRef,
                                         object value,
                                         bool alreadyConverted = false)
        {
            if (fieldRef.Type != FieldRefType.KnownMember)
            {
                return(Where(comparisonOperator,
                             FieldRef(fieldRef),
                             Value(fieldRef, value, alreadyConverted)));
            }

            return(WhereComparison(comparisonOperator, GetMetaField((MemberRefModel)fieldRef), value,
                                   alreadyConverted));
        }
Exemplo n.º 2
0
        private string GetFieldInternalName([NotNull] FieldRefModel fieldRef)
        {
            switch (fieldRef.Type)
            {
            case FieldRefType.Key:
                return(ContentType.List.IsExternal ? Fields.BdcIdentity : Fields.Id);

            case FieldRefType.ContentTypeId:
                return(Fields.ContentTypeId);

            case FieldRefType.KnownMember:
                return(GetMetaField((MemberRefModel)fieldRef).InternalName);
            }

            throw new NotSupportedException("Unsupported FieldRefType value");
        }
Exemplo n.º 3
0
        private XElement Value([NotNull] FieldRefModel fieldRef, [CanBeNull] object value,
                               bool alreadyConverted = false)
        {
            if (fieldRef.Type == FieldRefType.KnownMember)
            {
                return(Value(GetMetaField((MemberRefModel)fieldRef), value, alreadyConverted));
            }

            if (!alreadyConverted)
            {
                throw new NotSupportedException(
                          "Only already converted values allowed with non FieldRefType.KnownMember field refs");
            }

            return(new XElement(Tags.Value, value));
        }
Exemplo n.º 4
0
 private XElement FieldRef([NotNull] FieldRefModel fieldRef)
 {
     return(new XElement(Tags.FieldRef,
                         new XAttribute(Tags.Name, GetFieldInternalName(fieldRef))));
 }