コード例 #1
0
        public async Task SyncOfflineCacheAsync()
        {
            Debug.WriteLine("SyncOfflineCacheAsync: Initializing...");
            await InitializeAsync();

            if (!(await CrossConnectivity.Current.IsRemoteReachable(Client.MobileAppUri.Host, 443)))
            {
                Debug.WriteLine($"Cannot connect to {Client.MobileAppUri} right now - offline");
                return;
            }

            // Push the Operations Queue to the mobile backend
            Debug.WriteLine("SyncOfflineCacheAsync: Pushing Changes");
            await Client.SyncContext.PushAsync();

            // Pull each sync table
            //Debug.WriteLine("SyncOfflineCacheAsync: Pulling tasks table");
            //var taskTable = await GetTableAsync<TodoItem>(); await taskTable.PullAsync();

            Debug.WriteLine("SyncOfflineCacheAsync: Pulling sharing spaces table");
            sharingSpaceTable = await GetTableAsync <SharingSpace>(); await sharingSpaceTable.PullAsync();

            Debug.WriteLine("SyncOfflineCacheAsync: Pulling users table");
            var userTable = await GetTableAsync <User>(); await userTable.PullAsync();

            Debug.WriteLine("SyncOfflineCacheAsync: Pulling objects table");
            objectTable = await GetTableAsync <Models.Object>(); await objectTable.PullAsync();
        }