internal void Add(CollectorServices.BioFileInfo bioFileInfo, Action <bool> ItemSelectionChanged) { String[] split = System.IO.Path.GetDirectoryName(bioFileInfo.Filename).Split(System.IO.Path.DirectorySeparatorChar); if (!String.IsNullOrEmpty(split[0])) { CheckAndCreateRoute(_items[0], ItemSelectionChanged, split.ToList <String>(), bioFileInfo); } else { _items[0].Files.Add(new FileViewModel(bioFileInfo.Filename, ItemSelectionChanged) { BioFileInfo = bioFileInfo }); } }
internal void AddFile(CollectorServices.BioFileInfo bioFileInfo) { log.InfoFormat("Adding file {0} with number {1}", bioFileInfo.Filename, bioFileInfo.FileNumber); TreeModel.Add(bioFileInfo, ItemSelectionChanged); }
private void CheckAndCreateRoute(FileViewModel fileViewModel, Action <bool> SelectionChanged, List <String> split, CollectorServices.BioFileInfo bioFileInfo) { if (split.Count > 0) { var dirName = split[0]; if (!fileViewModel.Files.Any(item => item.Name == dirName)) { fileViewModel.Files.Add(new FileViewModel(dirName, SelectionChanged)); } split.RemoveAt(0); CheckAndCreateRoute(fileViewModel.Files.First(item => item.Name == dirName), SelectionChanged, split, bioFileInfo); } else { var fileName = System.IO.Path.GetFileName(bioFileInfo.Filename); if (bioFileInfo.PathType == CollectorServices.BioFileInfo.EntityAtPathType.Regular) { if (!fileViewModel.Files.Any(item => item.Name == fileName)) { fileViewModel.Files.Add(new FileViewModel(fileName, SelectionChanged) { BioFileInfo = bioFileInfo }); } } else { var existingNode = fileViewModel.Files.FirstOrDefault((obj) => obj.Name == fileName); if (existingNode != null) { existingNode.BioFileInfo = bioFileInfo; } else { fileViewModel.Files.Add(new FileViewModel(fileName, SelectionChanged) { BioFileInfo = bioFileInfo }); } } } }