Esempio n. 1
0
        private async Task SyncData(IServerSyncProvider provider,
                                    ISyncDataProvider dataProvider,
                                    string serverId,
                                    SyncTarget target,
                                    CancellationToken cancellationToken)
        {
            var localIds = await dataProvider.GetServerItemIds(target, serverId).ConfigureAwait(false);

            var result = await _syncManager.SyncData(new SyncDataRequest
            {
                TargetId     = target.Id,
                LocalItemIds = localIds
            }).ConfigureAwait(false);

            cancellationToken.ThrowIfCancellationRequested();

            foreach (var itemIdToRemove in result.ItemIdsToRemove)
            {
                try
                {
                    await RemoveItem(provider, dataProvider, serverId, itemIdToRemove, target, cancellationToken).ConfigureAwait(false);
                }
                catch (Exception ex)
                {
                    _logger.ErrorException("Error deleting item from device. Id: {0}", ex, itemIdToRemove);
                }
            }
        }