public void ReturnsCorrectDistinctPath() { var paths = new[] { Combine("logger.log"), Combine("Debug", "logger.log"), Combine("bin", "Debug", "logger.log"), Combine("C:\\", "App", "bin", "Debug", "logger.log"), Combine("D:\\", "App", "bin", "Debug", "logger.log"), Combine("C:\\", "App", "bin", "Release", "logger.log"), Combine("C:\\", "App", "obj", "Release", "logger.log") }; var expected = new[] { Combine("logger.log"), Combine("Debug", "logger.log"), Combine("bin", "..", "logger.log"), Combine("C:\\", "..", "logger.log"), Combine("D:\\", "..", "logger.log"), Combine("bin", "..", "logger.log"), Combine("obj", "..", "logger.log") }; var trie = new FileNamer(paths); var result = paths.Select(path => trie.GetName(path)).ToArray(); Assert.Equal(expected, result); }
public FileHeaderNamingJob(IWindowsController windowsController) { if (windowsController == null) throw new ArgumentNullException(nameof(windowsController)); _cleanUp = windowsController.Views .Connect(vc => vc.Header is FileHeader) .Transform(vc => (FileHeader) vc.Header) .ToCollection() .Subscribe(files => { var renamer = new FileNamer(files.Select(f => f.FullName)); files.Select(page => new { Item = page, Label = renamer.GetName(page.FullName) }) .ForEach(x => x.Item.DisplayName = x.Label); }); }