To allow users to handle file synchronization conflicts automatically on the client side, we introduced
In order to create the listener that will be able to deal with conflicted files implement this interface.
public interface IFilesConflictListener
/// Invoked when a conflict has been detected over a file.
/// <param name="local">The file in conflict in its local version</param>
/// <param name="remote">The file in conflict in its remote version</param>
/// <param name="sourceServerUri">The source file system URL that tried to synchronize a file to a destination where the conflict appeared</param>
/// <returns>A resolution strategy for this conflict</returns>
ConflictResolutionStrategy ConflictDetected(FileHeader local, FileHeader remote, string sourceServerUri);
/// Invoked when a file conflict has been resolved.
/// <param name="instance">The file with the resolved conflict</param>
void ConflictResolved(FileHeader instance);
The attempt to resolve the conflict is taken when a conflict notification arrives. It means that you need to subscribe to the conflict notifications first to take
advantage of the registered conflict listeners.
The conflict is resolved according to the first encountered strategy different than
ConflictResolutionStrategy.NoResolution returned by the listener. The listeners are executed in
the order of addition. To get more details about resolution strategies read Resolving conflicts section.
The below listener resolves conflict in favor of the newer file:
public class TakeNewestConflictsListener : IFilesConflictListener
public ConflictResolutionStrategy ConflictDetected(FileHeader local, FileHeader remote, string sourceServerUri)
if (local.LastModified.CompareTo(remote.LastModified) >= 0)
public void ConflictResolved(FileHeader header)