Figure 6 outlines the way that the Tailspin application delivers new, relevant surveys to the mobile client application when it synchronizes with the Tailspin Surveys service. The user initiates the synchronization process from the SurveyListView page, and the view model invokes a method in a service class to retrieve the list of new surveys. In the Tailspin Surveys service, the application gets the list of surveys to return to the client from a filtering service class.
Identifying which surveys to download when a user synchronizes from the mobile client requires two queries. The first query returns a list of tenants based on user preferences stored in Windows Azure table storage. In the current version of the application, these preferences are lists of tenants that the user is interested in. The second query, which is inside the filter, uses the list of tenants to return a list of new surveys from those tenants.
Inside the Implementation
Now is a good time to walk through the code that implements the filtering of the list of surveys in more detail. As you go through this section, you may want to download the Visual Studio solution for the Tailspin Surveys application from CodePlex (http://go.microsoft.com/fwlink/?LinkId=205602).