public List <RootFolder> AllWithUnmappedFolders() { var rootFolders = _rootFolderRepository.All().ToList(); rootFolders.ForEach(folder => { try { if (folder.Path.IsPathValid() && _diskProvider.FolderExists(folder.Path)) { folder.FreeSpace = _diskProvider.GetAvailableSpace(folder.Path); folder.TotalSpace = _diskProvider.GetTotalSize(folder.Path); folder.UnmappedFolders = GetUnmappedFolders(folder.Path); } } //We don't want an exception to prevent the root folders from loading in the UI, so they can still be deleted catch (Exception ex) { _logger.Error(ex, "Unable to get free space and unmapped folders for root folder {0}", folder.Path); folder.UnmappedFolders = new List <UnmappedFolder>(); } }); return(rootFolders); }
private IEnumerable <DiskSpace> GetDiskSpace(IEnumerable <String> paths) { foreach (var path in paths) { DiskSpace diskSpace = null; try { var freeSpace = _diskProvider.GetAvailableSpace(path).Value; var totalSpace = _diskProvider.GetTotalSize(path).Value; diskSpace = new DiskSpace { Path = path, FreeSpace = freeSpace, TotalSpace = totalSpace }; diskSpace.Label = _diskProvider.GetVolumeLabel(path); } catch (Exception ex) { _logger.WarnException("Unable to get free space for: " + path, ex); } if (diskSpace != null) { yield return(diskSpace); } } }
private void GetDetails(RootFolder rootFolder) { Task.Run(() => { if (_diskProvider.FolderExists(rootFolder.Path)) { rootFolder.Accessible = true; rootFolder.FreeSpace = _diskProvider.GetAvailableSpace(rootFolder.Path); rootFolder.TotalSpace = _diskProvider.GetTotalSize(rootFolder.Path); } }).Wait(5000); }
private void GetDetails(RootFolder rootFolder, List <string> moviePaths, bool timeout) { Task.Run(() => { if (_diskProvider.FolderExists(rootFolder.Path)) { rootFolder.Accessible = true; rootFolder.FreeSpace = _diskProvider.GetAvailableSpace(rootFolder.Path); rootFolder.TotalSpace = _diskProvider.GetTotalSize(rootFolder.Path); rootFolder.UnmappedFolders = GetUnmappedFolders(rootFolder.Path, moviePaths); } }).Wait(timeout ? 5000 : -1); }
private IEnumerable <DiskSpace> GetDiskSpace(IEnumerable <string> paths, bool suppressWarnings = false) { foreach (var path in paths) { DiskSpace diskSpace = null; try { var freeSpace = _diskProvider.GetAvailableSpace(path); var totalSpace = _diskProvider.GetTotalSize(path); if (!freeSpace.HasValue || !totalSpace.HasValue) { continue; } diskSpace = new DiskSpace { Path = path, FreeSpace = freeSpace.Value, TotalSpace = totalSpace.Value }; diskSpace.Label = _diskProvider.GetVolumeLabel(path); } catch (Exception ex) { if (!suppressWarnings) { _logger.Warn(ex, "Unable to get free space for: " + path); } } if (diskSpace != null) { yield return(diskSpace); } } }