I have this WCF service providing search functionality - to be used by our client in his web application. There can be any number of search parameters and possible nesting of AND/OR operations.
Could you please have a look and share some ideas on if I can make it more client-friendly?
<con:Search>
<con:clientID>xxx</con:clientID>
<con:propertyQueries>
<wil:PropertyQuery Id="0">
<wil:PropertyID>DocumentType</wil:PropertyID>
<wil:Value>Statement</wil:Value>
<wil:Operator>EQUALS</wil:Operator>
</wil:PropertyQuery>
<wil:PropertyQuery Id="1" AND="0">
<wil:PropertyID>BANK</wil:PropertyID>
<wil:Value>HSBC</wil:Value>
<wil:Operator>EQUALS</wil:Operator>
</wil:PropertyQuery>
<wil:PropertyQuery Id="2" OR="1">
<wil:PropertyID>BANK</wil:PropertyID>
<wil:Value>BARCLAYS</wil:Value>
<wil:Operator>EQUALS</wil:Operator>
</wil:PropertyQuery>
<wil:PropertyQuery Id="3" AND="0">
<wil:PropertyID>Date</wil:PropertyID>
<wil:Value Start="1">11/01/2014</wil:Value>
<wil:Value End="1">11/02/2014</wil:Value>
<wil:Operator>BETWEEN</wil:Operator>
</wil:PropertyQuery>
</con:propertyQueries>
</con:Search>
The values in AND and OR attribute indicates the Id of PropertyQuery to which the condition to be added. For example:
<wil:PropertyQuery Id="2" OR="1">
performs an OR operation between Property Queries with ID of 1, 2.
Any better ideas out there to improve the interface?