public MirrorFolders(bool localIsMaster, RecursionMode recursive, bool syncDateTime, int comparisonMethod, bool checkForResumability, string searchPattern) { InitializeComponent(); rbtLocalMaster.Checked = localIsMaster; rbtRemoteMaster.Checked = !localIsMaster; chkRecursive.Checked = recursive == RecursionMode.RecurseIntoAllSubFolders; chkSyncDateTime.Checked = syncDateTime; cbxComparisonType.SelectedIndex = comparisonMethod; chkResumability.Checked = checkForResumability; txtSearchPattern.Text = searchPattern; }
public SynchronizeFolders(RecursionMode recursive, bool syncDateTime, bool syncAttributes, int comparisonMethod, bool checkForResumability, string searchPattern, string sourceDir) { InitializeComponent(); chkRecursive.Checked = recursive == RecursionMode.RecurseIntoAllSubFolders; chkUpdateTime.Checked = syncDateTime; chkUpdateAttributes.Checked = syncAttributes; cbxComparisonType.SelectedIndex = comparisonMethod; chkResumability.Checked = checkForResumability; txtSearchPattern.Text = searchPattern; txtSourceDir.Text = sourceDir; }
void LeaveRecursive(RecursionMode leavingMode) { _recursionDepth--; if (_recursionDepth == 0) { // Leave the data as it is, we'll use it for the next call _mode = RecursionMode.Idle; } else { // We need to restore the previous data _instanceDataPool.ReturnObject(InstanceData); InstanceData = _recursionStack.Pop(); } }
void EnterRecursive(RecursionMode enteringMode) { _recursionDepth++; if (_recursionDepth == 1) { // First level, just use the existing data block _mode = enteringMode; } else { if (_mode != enteringMode) { throw new InvalidOperationException("Cannot start a serialization call while a deserialization is still in progress (and vice versa)"); } // Next level of recursion _recursionStack.Push(InstanceData); InstanceData = _instanceDataPool.RentObject(); } }
private void btnOk_Click(object sender, EventArgs e) { UpdatePermissions(); _recursive = chkRecursive.Checked ? RecursionMode.RecurseIntoAllSubFolders : RecursionMode.None; }
/// <summary> /// Enumerates the file system infos. /// </summary> /// <param name="This">This DirectoryInfo.</param> /// <param name="mode">The recursion mode.</param> /// <param name="recursionFilter">The filter to use for recursing into sub-directories (Walks on <c>true</c>; otherwise, skips recursion).</param> /// <returns> /// The FileSystemInfos /// </returns> /// <exception cref="System.NotSupportedException">RecursionMode</exception> public static IEnumerable <FileSystemInfo> EnumerateFileSystemInfos(this DirectoryInfo This, RecursionMode mode, Func <DirectoryInfo, bool> recursionFilter = null) { switch (mode) { case RecursionMode.ToplevelOnly: { #if NET40 foreach (var result in This.EnumerateFileSystemInfos()) #else foreach (var result in This.GetFileSystemInfos()) #endif { yield return(result); } break; } case RecursionMode.ShortestPathFirst: { var results = new Queue <DirectoryInfo>(); results.Enqueue(This); while (results.Any()) { var result = results.Dequeue(); #if NET40 foreach (var fsi in result.EnumerateFileSystemInfos()) { #else foreach (var fsi in result.GetFileSystemInfos()) { #endif yield return(fsi); var di = fsi as DirectoryInfo; if (di == null) { continue; } if (recursionFilter == null || recursionFilter(di)) { results.Enqueue(di); } } } break; } case RecursionMode.DeepestPathFirst: { var results = new Stack <DirectoryInfo>(); results.Push(This); while (results.Any()) { var result = results.Pop(); #if NET40 foreach (var fsi in result.EnumerateFileSystemInfos()) { #else foreach (var fsi in result.GetFileSystemInfos()) { #endif yield return(fsi); var di = fsi as DirectoryInfo; if (di == null) { continue; } if (recursionFilter == null || recursionFilter(di)) { results.Push(di); } } } break; } default: { throw new NotSupportedException(nameof(RecursionMode)); } } }
public TriggersContextOptionsBuilder RecursionMode(RecursionMode recursionMode = Infrastructure.RecursionMode.EntityAndType) => WithOption(e => e.WithRecursionMode(recursionMode));