public IOperation Create(FileSystemWatcherEventArgs eventArgs, IFileSender fileSender) { IOperation result; switch (eventArgs.ChangeType) { case FileSystemWatcherChangeType.Renamed: { result = this.CreateRenameOperation(eventArgs, fileSender); break; } case FileSystemWatcherChangeType.Synchronize: { result = this.CreateSynchronizeOperation(eventArgs, fileSender); break; } default: { result = this.CreateCopyOperation(eventArgs, fileSender); break; } } return result; }
private void OnFolderStateChanged(object sender, FileSystemWatcherEventArgs fileSystemWatcherEventArgs) { lock (_sync) { _operationQueue.Enqueue(fileSystemWatcherEventArgs); Monitor.Pulse(_sync); } }
private IOperation CreateRenameOperation(FileSystemWatcherEventArgs eventArgs, IFileSender fileSender) { var renameArgs = eventArgs as FileSystemWatcherRenameEventArgs; if (renameArgs == null) { throw new ArgumentException("The operation is specified as 'Rename' but the actual arguments is different."); } return _renameOperationFactory.Invoke(renameArgs.OldName, renameArgs.Name, fileSender); }
private string GetKey(FileSystemWatcherEventArgs watchArg) { var renameArgs = watchArg as FileSystemWatcherRenameEventArgs; if (renameArgs != null) { return renameArgs.OldPath; } return watchArg.FullPath; }
private IOperation CreateSynchronizeOperation(FileSystemWatcherEventArgs eventArgs, IFileSender fileSender) { return _synchronizationOperationFactory.Invoke(eventArgs.FullPath, fileSender); }
private IOperation CreateCopyOperation(FileSystemWatcherEventArgs eventArgs, IFileSender fileSender) { return _copyOperationFactory.Invoke(eventArgs.FullPath, fileSender); }