// updates the local cache of the reports...
public static async Task UpdateCacheFromServerAsync()
{
IEnumerable <ReportItem> reports = await GetSpooledReportsAsync();
if (reports == null)
{
// create a service proxy to call up to the server...
var proxy = TinyIoCContainer.Current.Resolve <IGetReportsByUserServiceProxy>();
var result = await proxy.GetReportsByUserAsync();
// did it actually work?
result.AssertNoErrors();
// set...
reports = result.Reports;
}
// update...
var conn = StreetFooRuntime.GetUserDatabase();
foreach (var report in 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);
}
}