/// <summary> /// Adds the specified sync task. /// </summary> /// <param name="syncTask">The sync task.</param> /// <param name="syncItem">The sync item.</param> internal void Add(SyncTask syncTask, SyncItemBase syncItem) { if (syncTask == null) { throw new ArgumentNullException("syncTask"); } if (syncItem == null) { throw new ArgumentNullException("syncItem"); } SyncTaskPreview syncTaskPreview; if (this.SyncTaskPreviewBySyncTask.TryGetValue(syncTask, out syncTaskPreview)) { syncTaskPreview.Add(syncItem); } else { syncTaskPreview = new SyncTaskPreview(); syncTaskPreview.Add(syncItem); this.SyncTaskPreviewBySyncTask[syncTask] = syncTaskPreview; } }
/// <summary> /// Executed when a directory was found on target directory. /// </summary> /// <param name="directory">The found directory.</param> /// <param name="syncTask">The sync task.</param> /// <param name="syncPreview">The sync preview.</param> private static void DirectoryFoundOnTargetDirectory(string directory, SyncTask syncTask, SyncPreview syncPreview) { string relativePath = directory.Substring(syncTask.TargetDirectory.Length); string targetDirectory = Path.Combine(syncTask.ReferenceDirectory, relativePath); SyncItemBase syncItem = syncTask.SyncMode.DirectoryFoundOnTargetDirectory(targetDirectory, directory); if (syncItem != null) { syncPreview.Add(syncTask, syncItem); } }
/// <summary> /// Executed when a file was found on reference directory. /// </summary> /// <param name="file">The found file.</param> /// <param name="syncTask">The sync task.</param> /// <param name="syncPreview">The sync preview.</param> private static void FileFoundOnReferenceDirectory(string file, SyncTask syncTask, SyncPreview syncPreview) { string relativePath = file.Substring(syncTask.ReferenceDirectory.Length); string targetFile = Path.Combine(syncTask.TargetDirectory, relativePath); SyncItemBase syncItem = syncTask.SyncMode.FileFoundOnReferenceDirectory(file, targetFile); if (syncItem != null) { syncPreview.Add(syncTask, syncItem); } }
/// <summary> /// Adds the specified sync item. /// </summary> /// <param name="syncItem">The sync item.</param> internal void Add(SyncItemBase syncItem) { CopyFileSyncItem copyFileSyncItem = syncItem as CopyFileSyncItem; if (copyFileSyncItem != null) { this.copyFileSyncItems.Add(copyFileSyncItem); return; } DeleteFileSyncItem deleteFileSyncItem = syncItem as DeleteFileSyncItem; if (deleteFileSyncItem != null) { this.deleteFileSyncItems.Add(deleteFileSyncItem); return; } CreateDirectorySyncItem createDirectorySyncItem = syncItem as CreateDirectorySyncItem; if (createDirectorySyncItem != null) { this.createDirectorySyncItems.Add(createDirectorySyncItem); return; } DeleteDirectorySyncItem deleteDirectorySyncItem = syncItem as DeleteDirectorySyncItem; if (deleteDirectorySyncItem != null) { this.deleteDirectorySyncItems.Add(deleteDirectorySyncItem); return; } throw new ArgumentException("SyncItem has invalid type.", "syncItem"); }
public void AddSyncItem_CalledWithSyncItemBase_ThrowsInvalidOperationException() { SyncItemBase syncItem = null; this.target.Add(syncItem); }