The user creates a list of preferred tenants on the FilterSettingsView page in the mobile client application. When the user saves the settings, the Tailspin Surveys mobile client application sends the preferences to the Tailspin Surveys registration service that then stores the list of preferred tenants in Windows Azure table storage.
Figure 4 outlines the way that the mobile client application saves the user’s settings in the Tailspin Surveys web service.
The view model uses a service class to send the settings to the Tailspin Surveys registration web service. All the settings are encapsulated in a data transfer object that the web service code unpacks and saves in Windows Azure table storage.
The following table shows the structure of the tenant filter table in Windows Azure table storage that stores the list of preferred tenants for each user.
The application can use this table to retrieve a list of tenants that a particular user is interested in or a list of users who are interested in a particular tenant.
Note: For more information about Windows Azure table storage, including partition keys and row keys, Using Windows Azure Storage,” of the book, Moving Applications to the Cloud. It is available on MSDN (http://msdn.microsoft.com/en-us/library/ff728592.aspx).
The following table shows the structure of the user device table in Windows Azure table storage that records which physical devices, identified by a unique URI allocated by the MPNS, are associated with each user.
The structure of this table reflects the fact that a user can have more than one device, each with a unique URI for the MPNS to use. Tailspin optimized this table to support queries that look for the list of devices owned by a user.
Note: With the current implementation, it’s possible for a user who owns multiple Windows Phone 7 devices to enter different lists of preferred tenants on the different devices. The data model in the Tailspin Surveys service only supports a single list of preferred tenants for each user, so the user might see unexpected results on some of their devices. Tailspin plans to address this issue in the next version of the application.