async Task UpdateFolder(StorageFolder storageFolder)
{
var folder = await databaseConnection.Table<Folder>().Where(p => p.Path == storageFolder.Path).FirstOrDefaultAsync();
if (folder == null)
{
folder = new Folder() { LastUpdateTime = DateTime.Now, CheckedToday = true, Path = storageFolder.Path };
await databaseConnection.InsertAsync(folder);
await UpdateFilesInFolder(folder.Id, storageFolder);
}
else
{
var dateChanged = (await storageFolder.GetBasicPropertiesAsync()).DateModified;
if (dateChanged > folder.LastUpdateTime)
{
await UpdateFilesInFolder(folder.Id, storageFolder);
folder.LastUpdateTime = DateTime.Now;
}
folder.CheckedToday = true;
await databaseConnection.UpdateAsync(folder);
}
foreach (var subFolder in await storageFolder.GetFoldersAsync())
await UpdateFolder(subFolder);
}