/// <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); }