protected virtual async Task GetChanges()
        {
            var associations = FolderAssociationTableModel.GetDefault().GetAllItems();

            foreach (FolderAssociation association in associations)
            {
                if (association.SupportsInstantUpload)
                {
                    continue;
                }
                await LogHelper.Write($"Scanning {association.LocalFolderPath} and {association.RemoteFolderFolderPath} BackgroundTask: {_isBackgroundTask}");

                if (_watch.Elapsed.Minutes >= 9)
                {
                    break;
                }
                await SetExecutionStatus(ExecutionStatus.Scanning);

                var getUpdatedTargetTask = _targetEntityAdapter.GetUpdatedItems(association);
                var getUpdatedSourceTask = _sourceEntityAdapter.GetUpdatedItems(association);
                var getDeletedTargetTask = _targetEntityAdapter.GetDeletedItemsAsync(association);
                var getDeletedSourceTask = _sourceEntityAdapter.GetDeletedItemsAsync(association);

                var deletedItems = await getDeletedTargetTask;
                deletedItems.AddRange(await getDeletedSourceTask);

                var items = await getUpdatedSourceTask;
                items.AddRange(await getUpdatedTargetTask);

                await _UpdateFileIndexes(association, items);
                await ProcessDeletions(deletedItems);

                await LogHelper.Write($"Updating: {items.Count} Deleting: {deletedItems.Count} BackgroundTask: {_isBackgroundTask}");
            }
        }