Example #1
0
        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);
        }
Example #2
0
        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);
                }
            }
        }
Example #3
0
 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);
 }
Example #4
0
 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);
 }
Example #5
0
        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);
                }
            }
        }