private void LocalItemConflicting(object sender, ItemConflictingEventArgs e) { switch (e.DestinationChange.ChangeKind) { case ChangeKind.Deleted: e.SetResolutionAction(ConflictResolutionAction.SourceWins); break; case ChangeKind.UnknownItem: e.SetResolutionAction(ConflictResolutionAction.SourceWins); break; case ChangeKind.Update: e.SetResolutionAction(ConflictResolutionAction.Merge); break; } }
private static void ItemConflicting(object sender, ItemConflictingEventArgs e) { switch (e.DestinationChange.ChangeKind) { default: e.SetResolutionAction(ConflictResolutionAction.Merge); break; } }
/// <summary> /// Called when [sync item conflicting]. /// </summary> /// <param name="sender">The sender.</param> /// <param name="e">The <see cref="Microsoft.Synchronization.ItemConflictingEventArgs"/> instance containing the event data.</param> protected virtual void OnSyncItemConflicting(object sender, ItemConflictingEventArgs e) { if (_syncApp.CurrentProcessedSyncType == null) { throw new NullReferenceException("CurrentProcessedSyncType"); } string debugStr = string.Format("Item conflict detected: source data - {0}, destination data - {1}", e.SourceChangeData != null ? e.SourceChangeData.ToString() : "unknow", e.DestinationChangeData != null ? e.DestinationChangeData.ToString() : "unknow"); DebugAssistant.Log(debugStr); ConflictResolutionAction resolution = GetConflictResolutionAction(e); e.SetResolutionAction(resolution); }
/// <summary> /// This method is called when there are conflicting items during synchronization /// </summary> /// <param name="sender"></param> /// <param name="args"></param> private void OnItemConflicting(object sender, ItemConflictingEventArgs args) { IFileDataRetriever localfileDataRetriever; IFileDataRetriever remotefileDataRetriever; try { localfileDataRetriever = ((IFileDataRetriever)args.SourceChangeData); remotefileDataRetriever = ((IFileDataRetriever)args.DestinationChangeData); } catch (Exception e) { if (e.Message.ToString().Contains(nsync.Properties.Resources.excludingFileTypesException)) { return; } else { throw; } } localfileDataRetriever = ((IFileDataRetriever)args.SourceChangeData); remotefileDataRetriever = ((IFileDataRetriever)args.DestinationChangeData); // Handling for renaming conflicts if (localfileDataRetriever.FileData.RelativePath != remotefileDataRetriever.FileData.RelativePath) { if (!errorMessageForSummaryReport.Contains(localfileDataRetriever.AbsoluteSourceFilePath) && !errorMessageForSummaryReport.Contains(remotefileDataRetriever.AbsoluteSourceFilePath)) { errorMessageForSummaryReport.Add(localfileDataRetriever.AbsoluteSourceFilePath); errorMessageForSummaryReport.Add(remotefileDataRetriever.AbsoluteSourceFilePath); } } // Setting latest change wins policy args.SetResolutionAction(ConflictResolutionAction.Merge); }
/// <summary> /// This method is called when there are conflicting items during synchronization /// </summary> /// <param name="sender"></param> /// <param name="args"></param> private static void OnItemConflicting(object sender, ItemConflictingEventArgs args) { // Currently, latest change wins args.SetResolutionAction(ConflictResolutionAction.Merge); }
private static void OnItemConflicting(object sender, ItemConflictingEventArgs args) { args.SetResolutionAction(ConflictResolutionAction.Merge); Console.WriteLine("Concurrency conflict detected form item {0}", args.DestinationChange.ItemId.ToString()); }
static void DestinationCallbacks_ItemConflicting(object sender, ItemConflictingEventArgs e) { Console.Write("Event Item conflicting: source data - {0}, ", e.SourceChangeData != null ? e.SourceChangeData.ToString() : null); Console.WriteLine("destination data - {0}", e.DestinationChangeData != null ? e.DestinationChangeData.ToString() : null); e.SetResolutionAction(ConflictResolutionAction.Merge); }
/// <summary> /// This method is called when there are conflicting items during synchronization /// </summary> /// <param name="sender"></param> /// <param name="args"></param> private void OnItemConflicting(object sender, ItemConflictingEventArgs args) { IFileDataRetriever localfileDataRetriever; IFileDataRetriever remotefileDataRetriever; try { localfileDataRetriever = ((IFileDataRetriever)args.SourceChangeData); remotefileDataRetriever = ((IFileDataRetriever)args.DestinationChangeData); } catch (Exception e) { if (e.Message.ToString().Contains(nsync.Properties.Resources.excludingFileTypesException)) return; else throw; } localfileDataRetriever = ((IFileDataRetriever)args.SourceChangeData); remotefileDataRetriever = ((IFileDataRetriever)args.DestinationChangeData); // Handling for renaming conflicts if(localfileDataRetriever.FileData.RelativePath != remotefileDataRetriever.FileData.RelativePath) { if (!errorMessageForSummaryReport.Contains(localfileDataRetriever.AbsoluteSourceFilePath) && !errorMessageForSummaryReport.Contains(remotefileDataRetriever.AbsoluteSourceFilePath)) { errorMessageForSummaryReport.Add(localfileDataRetriever.AbsoluteSourceFilePath); errorMessageForSummaryReport.Add(remotefileDataRetriever.AbsoluteSourceFilePath); } } // Setting latest change wins policy args.SetResolutionAction(ConflictResolutionAction.Merge); }
// By default, conflicts are resolved in favor of the last writer. In this example, // the change from the source in the first session (replica 1), will always // win the conflict. private void OnItemConflicting(object sender, ItemConflictingEventArgs args) { args.SetResolutionAction(ConflictResolutionAction.SourceWins); //Console.WriteLine("-- Concurrency conflict detected for item " + args.DestinationChange.ItemId.ToString()); if (logger != null) { logger.Info("-- Concurrency conflict detected for item " + args.DestinationChange.ItemId.ToString()); } }
static void destCallbacks_ItemConflicting(object sender, ItemConflictingEventArgs e) { e.SetResolutionAction(ConflictResolutionAction.SourceWins); Console.WriteLine("-- Concurrency conflict detected for item " + e.DestinationChange.ItemId.ToString()); }