예제 #1
0
        private async Task RestoreFileAsync(
            EntryUpdateInfo updateInfo,
            AdapterBase fromAdapter,
            AdapterBase toAdapter)
        {
            if (updateInfo.Entry.Type == SyncEntryType.Directory)
            {
                await toAdapter.CreateItemAsync(updateInfo.Entry).ConfigureAwait(false);

                return;
            }

            FileCopyHelper fileCopyHelper = new FileCopyHelper(
                this.Relationship,
                fromAdapter,
                toAdapter,
                updateInfo,
                null,
                this.encryptionCertificate,
                this.CancellationToken,
                this.CopyProgressChanged);

            if (this.Relationship.EncryptionMode == EncryptionMode.Encrypt)
            {
                fileCopyHelper.EncryptionMode = EncryptionMode.Decrypt;
            }

            fileCopyHelper.UpdateSyncEntry = false;

            Logger.Debug("Creating item with content");
            await fileCopyHelper.CopyFileAsync().ConfigureAwait(false);
        }