public static ObservableCollection <VideoFolder> LoadChildrenFiles(IFolder Parentdir, bool newpath = false) { ObservableCollection <VideoFolder> Toparent = new ObservableCollection <VideoFolder>(); List <FileInfo> files = FileExplorerCommonHelper.GetFilesByExtensions(Parentdir.Directory, formats); if (files.Count > 0) { ApplicationService.CreateLastSeenFolder(Parentdir); ApplicationService.LoadLastSeenFile(Parentdir); } for (int i = 0; i < files.Count; i++) { VideoFolderChild vd; PlayedFiles pdf = (PlayedFiles)LastSeenHelper.GetProgress(Parentdir, files[i].Name); vd = new VideoFolderChild(Parentdir, files[i]) { FileSize = FileExplorerCommonHelper.FileSizeConverter(files[i].Length), FileType = FileType.File }; if (pdf != null) { vd.LastPlayedPoisition = pdf; } else { vd.LastPlayedPoisition = new PlayedFiles(files[i].Name); } Toparent.Add(vd); } return(Toparent); }
public static VideoFolder LoadParent2(DirectoryInfo DirectoryPosition, SortType sorttype) { VideoFolder ParentDir = null; List <VideoFolder> children = new List <VideoFolder>(); List <DirectoryInfo> ParentSubDir = FileExplorerCommonHelper.GetParentSubDirectory(DirectoryPosition, FileLoader.formats); // Dispatcher.Invoke(new Action(delegate //{ ParentDir = new VideoFolder(DirectoryPosition.FullName); foreach (var item in ParentSubDir) { VideoFolder child = LoadParent2(item, sorttype); children.Add(child); } GetRootDetails(sorttype, ParentDir); // })); return(ParentDir); }
public static VideoFolder LoadChildrenFiles(DirectoryInfo directoryInfo, bool newpath = false) { IFolder Parentdir = new VideoFolder(directoryInfo.Parent.FullName); ApplicationService.CreateLastSeenFolder(Parentdir); ApplicationService.LoadLastSeenFile(Parentdir); FileInfo fileInfo = new FileInfo(directoryInfo.FullName); VideoFolderChild vd; PlayedFiles pdf = (PlayedFiles)LastSeenHelper.GetProgress(Parentdir, fileInfo.Name); vd = new VideoFolderChild(Parentdir, fileInfo) { FileSize = FileExplorerCommonHelper.FileSizeConverter(fileInfo.Length), FileType = FileType.File }; if (pdf != null) { vd.LastPlayedPoisition = pdf; } else { vd.LastPlayedPoisition = new PlayedFiles(fileInfo.Name); } IEnumerable <FileInfo> files = null; using (ShellObject shell = ShellObject.FromParsingName(vd.FilePath)) { IShellProperty prop = shell.Properties.System.Media.Duration; vd.Duration = prop.FormatForDisplay(PropertyDescriptionFormat.ShortTime); var duration = shell.Properties.System.Media.Duration; if (duration.Value != null) { vd.MaxiProgress = double.Parse(duration.Value.ToString()); } files = FileExplorerCommonHelper.GetSubtitleFiles(directoryInfo.Parent); } vd.SubPath = FileExplorerCommonHelper.MatchSubToMedia(vd.Name, files); return(vd); }
public static VideoFolder LoadParentFiles(VideoFolder ParentDir, SortType sorttype, ICollectionViewModel collectionVM) { // Dispatcher.Invoke(new Action(delegate { ObservableCollection <VideoFolder> children; List <DirectoryInfo> ParentSubDir = FileExplorerCommonHelper.GetParentSubDirectory(ParentDir.Directory, formats); if (ParentSubDir == null) { collectionVM.IsLoading = false; return(new VideoFolder(ParentDir, ParentDir.Directory.Extension)); } children = new ObservableCollection <VideoFolder>(); collectionVM.IsLoading = true; children = LoadChildrenFiles(ParentDir); for (int i = 0; i < ParentSubDir.Count; i++) { if (ParentSubDir[i].Name == ".movies") { ParentSubDir.Remove(ParentSubDir[i]); i -= 1; continue; } VideoFolder child = LoadDirInfo(ParentDir, ParentSubDir[i]); children.Add(child); } if (ParentDir.OtherFiles == null || children.Count > ParentDir.OtherFiles.Count) { ParentDir.OtherFiles = new ObservableCollection <VideoFolder>(); ParentDir.OtherFiles.AddRange(children); GetRootDetails(sorttype, ParentDir); } // })); collectionVM.IsLoading = false; return(ParentDir); }