/// <summary> /// Constructeur /// </summary> /// <param name="parent"></param> public RemoteFileInfoViewModel(RemoteFileInfoViewModel parent) { this.Parent = parent; this.SelectedFiles.CollectionChanged += new System.Collections.Specialized.NotifyCollectionChangedEventHandler(SelectedFiles_CollectionChanged); }
/// <summary> /// Obtenir les fichier,repertoires seulement ou les deux (isdirectory = null) /// </summary> /// <returns></returns> private ObservableCollection<RemoteFileInfoViewModel> GetRemoteFileInfo(RemoteFileInfoViewModel parent, bool? isDirectoryPattern) { ObservableCollection<RemoteFileInfoViewModel> result = new ObservableCollection<RemoteFileInfoViewModel>(); if (this.ApplicationViewModel != null && this.ApplicationViewModel.SelectedRemoteApplication != null) { string searchPattern = parent.GetSearchPattern(this.ApplicationViewModel); var remoteFileInfos = RemoteIsolatedStoreTools.GetRemoteFileInfos(this.ApplicationViewModel.SelectedRemoteApplication.Application, searchPattern, isDirectoryPattern); foreach (var remoteFileInfo in remoteFileInfos) { result.Add(new RemoteFileInfoViewModel(parent) { Id = Guid.NewGuid().ToString(), RemoteFileInfo = remoteFileInfo } ); } } return result; }
/// <summary> /// Rafraichir le repertoire /// </summary> /// <param name="searchPattern"></param> private void RefreshDirectory(RemoteFileInfoViewModel directory ) { if (directory == null || directory.IsDirectory == false) { return; } ObservableCollection<RemoteFileInfoViewModel> fileInfos = this.GetRemoteFileInfo(directory, false); ObservableCollection<RemoteFileInfoViewModel> directories = this.GetRemoteFileInfo(directory, true); directory.Children = directories; directory.Files = fileInfos; if (directory.Children != null && directory.Children.Count > 0) { foreach (RemoteFileInfoViewModel remoteFileInfo in directory.Children) { this.RefreshDirectory(remoteFileInfo); } } }
/// <summary> /// Création d'un répertoire /// </summary> public RemoteFileInfoViewModel CreateDirectory(string newDirectoryName) { if (string.IsNullOrWhiteSpace(newDirectoryName) == true) { return null; } if (this.ApplicationViewModel != null && this.ApplicationViewModel.SelectedRemoteApplication != null) { var application = this.ApplicationViewModel.SelectedRemoteApplication.Application; var directoryParent = this.SelectedDirectory.RemoteFileInfo; if (RemoteIsolatedStoreTools.Exists(application, directoryParent, newDirectoryName) == false) { var newDirectory = RemoteIsolatedStoreTools.CreateDirectory(application, directoryParent, newDirectoryName); var newDirectoryViewModel = new RemoteFileInfoViewModel(this.SelectedDirectory) { RemoteFileInfo = newDirectory }; this.SelectedDirectory.Children.Add( newDirectoryViewModel ); return newDirectoryViewModel; } } return null; }