StreetFoo.Client.ReportItem.UpdateCacheFromServerAsync C# (CSharp) Method

UpdateCacheFromServerAsync() public static method

public static UpdateCacheFromServerAsync ( ) : System.Threading.Tasks.Task
return System.Threading.Tasks.Task
        public static async Task UpdateCacheFromServerAsync()
        {
            // create a service proxy to call up to the server...
            IGetReportsByUserServiceProxy proxy = ServiceProxyFactory.Current.GetHandler<IGetReportsByUserServiceProxy>();
            var result = await proxy.GetReportsByUserAsync();

            // did it actually work?
            result.AssertNoErrors();

            // update...
            var conn = StreetFooRuntime.GetUserDatabase();
            foreach (var report in result.Reports)
            {
                // load the existing one, deleting it if we find it...
                var existing = await conn.Table<ReportItem>().Where(v => v.NativeId == report.NativeId).FirstOrDefaultAsync();
                if (existing != null)
                    await conn.DeleteAsync(existing);

                // create...
                await conn.InsertAsync(report);
            }
        }

Usage Example

Example #1
0
        private async Task DoRefresh(bool force)
        {
            // run...
            using (this.EnterBusy())
            {
                // update the local cache...
                if (force || await ReportItem.IsCacheEmpty())
                {
                    await ReportItem.UpdateCacheFromServerAsync();
                }

                // reload the items...
                await this.ReloadReportsFromCacheAsync();
            }
        }