Example #1
0
        /// <summary>
        /// Synchronizes the source and destination items.
        /// </summary>
        /// <param name="cancellationToken">A cancellation token that can be used to cancel the work.</param>
        /// <returns></returns>
        public async Task SyncAsync(CancellationToken cancellationToken)
        {
            // Validate comparer agent too
            if (ComparerAgent == null)
            {
                throw new NullReferenceException($"The {nameof(ComparerAgent)} cannot be null.");
            }

            Validate();

            var comparisonResult = await ComparerAgent.CompareAsync(cancellationToken).ConfigureAwait(false);

            await SyncAsync(comparisonResult, cancellationToken).ConfigureAwait(false);
        }