示例#1
0
        private bool HasVersion(int major, int minor, int patch = 0, string candidate = null)
        {
            candidate = candidate ?? string.Empty;

            var version = _proxy.GetVersion(Settings);
            var parsed  = VersionRegex.Match(version);

            if (!parsed.Success)
            {
                return(false);
            }

            var actualMajor     = Convert.ToInt32(parsed.Groups["major"].Value);
            var actualMinor     = Convert.ToInt32(parsed.Groups["minor"].Value);
            var actualPatch     = Convert.ToInt32(parsed.Groups["patch"].Value.Replace("x", ""));
            var actualCandidate = parsed.Groups["candidate"].Value.ToUpper();

            if (actualMajor > major)
            {
                return(true);
            }
            else if (actualMajor < major)
            {
                return(false);
            }

            if (actualMinor > minor)
            {
                return(true);
            }
            else if (actualMinor < minor)
            {
                return(false);
            }

            if (actualPatch > patch)
            {
                return(true);
            }
            else if (actualPatch < patch)
            {
                return(false);
            }

            if (actualCandidate.IsNullOrWhiteSpace())
            {
                return(true);
            }
            else if (candidate.IsNullOrWhiteSpace())
            {
                return(false);
            }
            else
            {
                return(actualCandidate.CompareTo(candidate) > 0);
            }
        }
示例#2
0
        private ValidationFailure TestConnectionAndVersion()
        {
            try
            {
                var version = _proxy.GetVersion(Settings);
                var parsed  = VersionRegex.Match(version);

                if (!parsed.Success)
                {
                    return(new ValidationFailure("Version", "Unknown Version: " + version));
                }

                var major = Convert.ToInt32(parsed.Groups["major"].Value);
                var minor = Convert.ToInt32(parsed.Groups["minor"].Value);

                if (major >= 1)
                {
                    return(null);
                }

                if (minor >= 7)
                {
                    return(null);
                }

                return(new ValidationFailure("Version", "Version 0.7.0+ is required, but found: " + version));
            }
            catch (Exception ex)
            {
                _logger.Error(ex, ex.Message);
                return(new ValidationFailure("Host", "Unable to connect to SABnzbd"));
            }
        }
示例#3
0
        private bool HasVersion(int major, int minor, int patch = 0)
        {
            var rawVersion = _proxy.GetVersion(Settings);
            var version    = ParseVersion(rawVersion);

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

            if (version.Major > major)
            {
                return(true);
            }
            else if (version.Major < major)
            {
                return(false);
            }

            if (version.Minor > minor)
            {
                return(true);
            }
            else if (version.Minor < minor)
            {
                return(false);
            }

            if (version.Build > patch)
            {
                return(true);
            }
            else if (version.Build < patch)
            {
                return(false);
            }

            return(true);
        }
示例#4
0
        private ValidationFailure TestConnection()
        {
            try
            {
                _proxy.GetVersion(Settings);
            }
            catch (Exception ex)
            {
                _logger.ErrorException(ex.Message, ex);
                return(new ValidationFailure("Host", "Unable to connect to SABnzbd"));
            }

            return(null);
        }