Roaming Options for User Settings: Listing 2

Saving the Settings into SkyDrive.

public static void SaveSettingsToCloud()
{
    LiveClient.GetAsync("/me/skydrive/my_documents", true);
}
private static void RetrieveFolderListing(object sender, LiveOperationCompletedEventArgs e)
{
    if (e.Error == null)
    {
        var isUpload = (bool)e.UserState;
        if (isUpload)
        {
            UploadSettingsToCloud(e.Result);
        }
        else
        {
            FindCloudSettingsFile(e.Result);
        }
    }
}

private static void UploadSettingsToCloud(IDictionary<string, object> data)
{
    var id = (string) data["id"];
    var file = IsolatedStorageFile.GetUserStoreForApplication()
                                  .OpenFile(LocalSettingsFile,FileMode.Open,FileAccess.Read);
    LiveClient.UploadAsync(id, CloudSettingsFile, true, file, file);
}

private static void UploadCompleted(object sender, LiveOperationCompletedEventArgs e)
{
    var file = e.UserState as IsolatedStorageFileStream;
    file.Dispose();
    SettingsSavedToCloud(LiveClient, EventArgs.Empty);
}

About the Author

Nick Randolph runs Built to Roam, a consulting company that specializes in training, mentoring and assisting other companies build mobile applications. With a heritage in rich client applications for both the desktop and a variety of mobile platforms, Nick currently presents, writes and educates on the Windows Phone platform.