private bool InitializeDiskSpace()
        {
            if (_fileStoreDiskspaceInitialized)
            {
                return(true);
            }

            //Try to initialize it only once after the file store directory changes.
            _fileStoreDiskspaceInitialized = true;

            var root = FileStoreRootPath;

            if (root == null)
            {
                return(false);
            }

            if (!Directory.Exists(root))
            {
                return(false);
            }

            try
            {
                var driveInfo = new DriveInfo(root);
                _fileStoreDiskspace = new Diskspace(driveInfo);
                return(true);
            }
            catch (ArgumentException)
            {
                return(false);
            }
        }
Beispiel #2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="SonarrClient"/> class.
        /// </summary>
        /// <param name="host">The host.</param>
        /// <param name="port">The port.</param>
        /// <param name="apiKey">The API key.</param>
        /// <param name="urlBase">The URL base.</param>
        /// <param name="useSsl">if set to <c>true</c> [use SSL].</param>
        public SonarrClient(string host, int port, string apiKey, [Optional] string urlBase, [Optional] bool useSsl)
        {
            // Initialize properties
            Host    = host;
            Port    = port;
            ApiKey  = apiKey;
            UrlBase = urlBase;
            UseSsl  = useSsl;

            // Set API URL
            ApiUrl = $"http{(UseSsl ? "s" : "")}://{Host}:{Port}{("/" + UrlBase ?? "")}/api";

            // Initialize endpoints
            Calendar          = new Calendar(this);
            Command           = new Command(this);
            Diskspace         = new Diskspace(this);
            Episode           = new Episode(this);
            EpisodeFile       = new EpisodeFile(this);
            History           = new History(this);
            Wanted            = new Wanted(this);
            Queue             = new Queue(this);
            Parse             = new Parse(this);
            Profile           = new Profile(this);
            Release           = new Release(this);
            ReleasePush       = new ReleasePush(this);
            Rootfolder        = new Rootfolder(this);
            Series            = new Series(this);
            SeriesLookup      = new SeriesLookup(this);
            SystemStatus      = new SystemStatus(this);
            SystemBackup      = new SystemBackup(this);
            Log               = new Log(this);
            QualityDefinition = new QualityDefinition(this);
        }
        public void TestUsedSpace()
        {
            var diskSpace = new Diskspace {
                TotalSpace = _petaByte, FreeSpace = _halfGig
            };

            Assert.AreEqual(_petaByte - _halfGig, diskSpace.UsedSpace);
        }
        public void TestUsedSpacePercent()
        {
            var diskSpace = new Diskspace {
                TotalSpace = _petaByte, FreeSpace = _halfGig
            };

            Assert.AreEqual(99.999953433871269, diskSpace.UsedSpacePercent);
            Assert.AreEqual(100 - 99.999953433871269, diskSpace.FreeSpacePercent);
        }
        public void TestFormat()
        {
            var diskSpace = new Diskspace {
                TotalSpace = 2 * _petaByte, FreeSpace = _halfGig
            };
            var format = Diskspace.FormatBytes(diskSpace.TotalSpace, "F3");

            Assert.AreEqual("2.000 PB", format);

            format = Diskspace.FormatBytes(diskSpace.TotalSpace);
            Assert.AreEqual("2.0 PB", format);

            diskSpace.TotalSpace = 1024 * _petaByte;
            format = Diskspace.FormatBytes(diskSpace.TotalSpace, "F3");
            Assert.AreEqual("1024.000 PB", format);

            diskSpace.TotalSpace = _petaByte;
            format = Diskspace.FormatBytes(diskSpace.TotalSpace, "F3");
            Assert.AreEqual("1.000 PB", format);

            diskSpace.TotalSpace = 1999 * _terabyte;
            format = Diskspace.FormatBytes(diskSpace.TotalSpace, "F3");
            //1999/1024 (PB)
            Assert.AreEqual("1.952 PB", format);

            diskSpace.TotalSpace = 999542 * _gigaByte;
            format = Diskspace.FormatBytes(diskSpace.TotalSpace, "F3");
            //999542/1024 (TB)
            Assert.AreEqual("976.115 TB", format);

            diskSpace.TotalSpace = 854563 * _gigaByte;
            format = Diskspace.FormatBytes(diskSpace.TotalSpace, "F3");
            //854563/1024 (TB)
            Assert.AreEqual("834.534 TB", format);

            diskSpace.TotalSpace = _terabyte;
            format = Diskspace.FormatBytes(diskSpace.TotalSpace, "F3");
            Assert.AreEqual("1.000 TB", format);

            diskSpace.TotalSpace = _gigaByte;
            format = Diskspace.FormatBytes(diskSpace.TotalSpace, "F3");
            Assert.AreEqual("1.000 GB", format);

            diskSpace.TotalSpace = _megaByte;
            format = Diskspace.FormatBytes(diskSpace.TotalSpace, "F3");
            Assert.AreEqual("1.000 MB", format);

            diskSpace.TotalSpace = _kiloByte;
            format = Diskspace.FormatBytes(diskSpace.TotalSpace, "F3");
            Assert.AreEqual("1.000 KB", format);

            diskSpace.TotalSpace = 1023;
            format = Diskspace.FormatBytes(diskSpace.TotalSpace, "F3");
            Assert.AreEqual("1023.000 B", format);
        }
        public void TestSetMinUsedSpace_InvalidPercent()
        {
            var diskSpace = new Diskspace { TotalSpace = _petaByte, FreeSpace = _halfGig };
            var configuration = new StorageConfiguration
            {
                FileStoreDirectory = @"c:\filestore",
                FileStoreDiskSpace = diskSpace
            };

            configuration.MinimumFreeSpacePercent = 110;
        }
        public void TestSetMinUsedSpace_Auto()
        {
            var diskSpace = new Diskspace { TotalSpace = _petaByte, FreeSpace = _halfGig };
            var configuration = new StorageConfiguration
            {
                FileStoreDirectory = @"c:\filestore",
                FileStoreDiskSpace = diskSpace
            };

            configuration.MinimumFreeSpacePercent = -10;
            Assert.AreEqual(configuration.MinimumFreeSpacePercent, StorageConfiguration.AutoMinimumFreeSpace);
        }
        public void TestMinimumFreeSpaceBytes()
        {
            var diskSpace = new Diskspace { TotalSpace = _petaByte, FreeSpace = _halfGig };
            var configuration = new StorageConfiguration
                                                     {
                                                         FileStoreDirectory = @"c:\filestore",
                                                         FileStoreDiskSpace = diskSpace
                                                     };

            configuration.MinimumFreeSpacePercent = 90;
            Assert.AreEqual(1013309916158361, configuration.MinimumFreeSpaceBytes);
        }
        public void TestFormat()
        {
            var diskSpace = new Diskspace { TotalSpace = 2*_petaByte, FreeSpace = _halfGig };
            var format = Diskspace.FormatBytes(diskSpace.TotalSpace, "F3");
            Assert.AreEqual("2.000 PB", format);

            format = Diskspace.FormatBytes(diskSpace.TotalSpace);
            Assert.AreEqual("2.0 PB", format);

            diskSpace.TotalSpace = 1024 * _petaByte;
            format = Diskspace.FormatBytes(diskSpace.TotalSpace, "F3");
            Assert.AreEqual("1024.000 PB", format);

            diskSpace.TotalSpace = _petaByte;
            format = Diskspace.FormatBytes(diskSpace.TotalSpace, "F3");
            Assert.AreEqual("1.000 PB", format);

            diskSpace.TotalSpace = 1999 * _terabyte;
            format = Diskspace.FormatBytes(diskSpace.TotalSpace, "F3");
            //1999/1024 (PB)
            Assert.AreEqual("1.952 PB", format);

            diskSpace.TotalSpace = 999542 * _gigaByte;
            format = Diskspace.FormatBytes(diskSpace.TotalSpace, "F3");
            //999542/1024 (TB)
            Assert.AreEqual("976.115 TB", format);

            diskSpace.TotalSpace = 854563 * _gigaByte;
            format = Diskspace.FormatBytes(diskSpace.TotalSpace, "F3");
            //854563/1024 (TB)
            Assert.AreEqual("834.534 TB", format);

            diskSpace.TotalSpace = _terabyte;
            format = Diskspace.FormatBytes(diskSpace.TotalSpace, "F3");
            Assert.AreEqual("1.000 TB", format);

            diskSpace.TotalSpace = _gigaByte;
            format = Diskspace.FormatBytes(diskSpace.TotalSpace, "F3");
            Assert.AreEqual("1.000 GB", format);

            diskSpace.TotalSpace = _megaByte;
            format = Diskspace.FormatBytes(diskSpace.TotalSpace, "F3");
            Assert.AreEqual("1.000 MB", format);

            diskSpace.TotalSpace = _kiloByte;
            format = Diskspace.FormatBytes(diskSpace.TotalSpace, "F3");
            Assert.AreEqual("1.000 KB", format);

            diskSpace.TotalSpace = 1023;
            format = Diskspace.FormatBytes(diskSpace.TotalSpace, "F3");
            Assert.AreEqual("1023.000 B", format);
        }
        public void TestSetMinUsedSpace_InvalidPercent()
        {
            var diskSpace = new Diskspace {
                TotalSpace = _petaByte, FreeSpace = _halfGig
            };
            var configuration = new StorageConfiguration
            {
                FileStoreDirectory = @"c:\filestore",
                FileStoreDiskSpace = diskSpace
            };

            configuration.MinimumFreeSpacePercent = 110;
        }
        public void TestSetMinUsedSpace_Auto()
        {
            var diskSpace = new Diskspace {
                TotalSpace = _petaByte, FreeSpace = _halfGig
            };
            var configuration = new StorageConfiguration
            {
                FileStoreDirectory = @"c:\filestore",
                FileStoreDiskSpace = diskSpace
            };

            configuration.MinimumFreeSpacePercent = -10;
            Assert.AreEqual(configuration.MinimumFreeSpacePercent, StorageConfiguration.AutoMinimumFreeSpace);
        }
        public void TestMinimumFreeSpaceBytes()
        {
            var diskSpace = new Diskspace {
                TotalSpace = _petaByte, FreeSpace = _halfGig
            };
            var configuration = new StorageConfiguration
            {
                FileStoreDirectory = @"c:\filestore",
                FileStoreDiskSpace = diskSpace
            };

            configuration.MinimumFreeSpacePercent = 90;
            Assert.AreEqual(1013309916158361, configuration.MinimumFreeSpaceBytes);
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="RadarrClient" /> class.
        /// </summary>
        /// <param name="host">The host.</param>
        /// <param name="port">The port.</param>
        /// <param name="apiKey">The API key.</param>
        /// <param name="urlBase">The URL base.</param>
        /// <param name="useSsl">if set to <c>true</c> [use SSL].</param>
        public RadarrClient(string host, int port, string apiKey, [Optional] string urlBase, [Optional] bool useSsl)
        {
            // Initialize properties
            Host    = host;
            Port    = port;
            ApiKey  = apiKey;
            UrlBase = urlBase;
            UseSsl  = useSsl;

            // Set API URL
            var sb = new StringBuilder();

            sb.Append("http");
            if (UseSsl)
            {
                sb.Append("s");
            }
            sb.Append($"://{host}:{Port}");
            if (UrlBase != null)
            {
                sb.Append($"/{UrlBase}");
            }
            sb.Append("/api");
            ApiUrl = sb.ToString();

            // Initialize endpoints
            Calendar          = new Calendar(this);
            Command           = new Command(this);
            Diskspace         = new Diskspace(this);
            History           = new History(this);
            Movie             = new Movie(this);
            SystemStatus      = new SystemStatus(this);
            Profile           = new Profile(this);
            Wanted            = new Wanted(this);
            Log               = new Log(this);
            Queue             = new Queue(this);
            Release           = new Release(this);
            QualityDefinition = new QualityDefinition(this);
            Indexer           = new Indexer(this);
            Restriction       = new Restriction(this);
            Blacklist         = new Blacklist(this);
            Notification      = new Notification(this);
            RootFolder        = new RootFolder(this);
            Config            = new Config(this);
            ExtraFile         = new ExtraFile(this);
            CustomFormat      = new CustomFormat(this);
        }
Beispiel #14
0
 public void TestUsedSpace()
 {
     var diskSpace = new Diskspace { TotalSpace = _petaByte, FreeSpace = _halfGig };
     Assert.AreEqual(_petaByte - _halfGig, diskSpace.UsedSpace);
 }
Beispiel #15
0
 public void TestUsedSpacePercent()
 {
     var diskSpace = new Diskspace { TotalSpace = _petaByte, FreeSpace = _halfGig };
     Assert.AreEqual(99.999953433871269, diskSpace.UsedSpacePercent);
     Assert.AreEqual(100 - 99.999953433871269, diskSpace.FreeSpacePercent);
 }