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)); }
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"); }
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)); }
private XElement FieldRef([NotNull] FieldRefModel fieldRef) { return(new XElement(Tags.FieldRef, new XAttribute(Tags.Name, GetFieldInternalName(fieldRef)))); }