private void HandleRenameFiles(int cProjects, int cFiles, IVsProject[] rgpProjects, int[] rgFirstIndices, string[] rgszMkOldNames, string[] rgszMkNewNames, FileRenamedEventHandler csFileEvent, FileRenamedEventHandler templateEvent) { if (csFileEvent == null && templateEvent == null) { return; } var oldPaths = ExtractPath(cProjects, cFiles, rgpProjects, rgFirstIndices, rgszMkOldNames).ToArray(); var newPaths = ExtractPath(cProjects, cFiles, rgpProjects, rgFirstIndices, rgszMkNewNames).ToArray(); var templates = ImmutableArray.CreateBuilder <int>(); var csFiles = ImmutableArray.CreateBuilder <int>(cFiles); for (var i = 0; i < oldPaths.Length; i++) { var oldPath = oldPaths[i]; if (oldPath.EndsWith(Constants.CsExtension, StringComparison.InvariantCultureIgnoreCase)) { csFiles.Add(i); } else if (oldPath.EndsWith(Constants.TemplateExtension, StringComparison.InvariantCultureIgnoreCase)) { templates.Add(i); } } if (csFileEvent != null && csFiles.Count > 0) { csFileEvent(this, new FileRenamedEventArgs(csFiles.Select(i => oldPaths[i]).ToArray(), csFiles.Select(i => newPaths[i]).ToArray())); } if (templateEvent != null && templates.Count > 0) { templateEvent(this, new FileRenamedEventArgs(templates.Select(i => oldPaths[i]).ToArray(), templates.Select(i => newPaths[i]).ToArray())); } }
private void HandleRenameFiles(int cProjects, int cFiles, IVsProject[] rgpProjects, int[] rgFirstIndices, string[] rgszMkOldNames, string[] rgszMkNewNames, FileRenamedEventHandler csFileEvent, FileRenamedEventHandler templateEvent) { if (csFileEvent == null && templateEvent == null) { return; } var oldPaths = ExtractPath(cProjects, cFiles, rgpProjects, rgFirstIndices, rgszMkOldNames).ToArray(); var newPaths = ExtractPath(cProjects, cFiles, rgpProjects, rgFirstIndices, rgszMkNewNames).ToArray(); var templates = ImmutableArray.CreateBuilder<int>(); var csFiles = ImmutableArray.CreateBuilder<int>(cFiles); for (var i = 0; i < oldPaths.Length; i++) { var oldPath = oldPaths[i]; if (oldPath.EndsWith(Constants.CsExtension, StringComparison.InvariantCultureIgnoreCase)) { csFiles.Add(i); } else if (oldPath.EndsWith(Constants.TemplateExtension, StringComparison.InvariantCultureIgnoreCase)) { templates.Add(i); } } if (csFileEvent != null && csFiles.Count > 0) { csFileEvent(this, new FileRenamedEventArgs(csFiles.Select(i => oldPaths[i]).ToArray(), csFiles.Select(i => newPaths[i]).ToArray())); } if (templateEvent != null && templates.Count > 0) { templateEvent(this, new FileRenamedEventArgs(templates.Select(i => oldPaths[i]).ToArray(), templates.Select(i => newPaths[i]).ToArray())); } }
private void Dispose(bool disposeManagedResources) { if (!disposeManagedResources) return; var disposedAlready = Interlocked.Exchange(ref _alreadyDisposed, 1); if (disposedAlready != 0) { return; } // Dispose managed resources. _fileSystemWatcher.Changed -= _fileSystemWatcherChangedEvent; _fileSystemWatcher.Created -= _fileSystemWatcherCreatedEvent; _fileSystemWatcher.Deleted -= _fileSystemWatcherDeletedEvent; _fileSystemWatcher.Renamed -= _fileSystemWatcherRenamedEvent; _fileSystemWatcher.Dispose(); _fileChangedEvent = null; _fileCreatedEvent = null; _fileDeletedEvent = null; _fileRenamedEvent = null; _fileFinishedChangingEvent = null; // Dispose unmanaged resources. // If it is available, make the call to the // base class's Dispose(Boolean) method }