Exemplo n.º 1
0
        public override bool VisitPackage(JProperty package, string projectJsonPath)
        {
            var patterns = Enumerable.Empty <ValidationPattern>();

            if (ValidationPatterns != null)
            {
                patterns = ValidationPatterns
                           .Select(item => new ValidationPattern(item, Log))
                           .ToArray();
            }

            string id = package.Name;
            string version;

            if (package.Value is JObject)
            {
                version = package.Value["version"].Value <string>();
            }
            else if (package.Value is JValue)
            {
                version = package.Value.ToObject <string>();
            }
            else
            {
                throw new ArgumentException(string.Format(
                                                "Unrecognized dependency element for {0} in {1}",
                                                package.Name,
                                                projectJsonPath));
            }

            string dependencyMessage = string.Format(
                "{0} {1} in {2}",
                id,
                version,
                projectJsonPath);

            bool packageUpdated = false;

            foreach (var pattern in patterns)
            {
                packageUpdated |= pattern.VisitPackage(
                    package,
                    id,
                    version,
                    dependencyMessage,
                    UpdateInvalidDependencies);
            }

            if (!packageUpdated && ProhibitFloatingDependencies && version.Contains('*'))
            {
                // A * dependency was found but it hasn't been fixed. It might not have been fixed
                // because UpdateInvalidDependencies = false or because a pattern didn't match it:
                // either way this is an error.
                Log.LogError("Floating dependency detected: {0}", dependencyMessage);
            }

            return(packageUpdated);
        }
Exemplo n.º 2
0
 public static bool Validate(string inputStr, ValidationPatterns pattern)
 {
     if (!string.IsNullOrEmpty(inputStr))
     {
         Regex reg = new Regex(GetPatternString(pattern));
         return reg.IsMatch(inputStr);
     }
     else
         return false;
 }
Exemplo n.º 3
0
 static string GetPatternString(ValidationPatterns pattern)
 {
     switch (pattern)
     {
         case ValidationPatterns.icq:
             {
                 return @"([1-9])+(?:-?\d){4,}";
             }
         case ValidationPatterns.creditcard:
             {
                 return @"[0-9]{13,16}";
             }
         case ValidationPatterns.english:
             {
                 return @"^[a-zA-Z0-9]+$";
             }
         case ValidationPatterns.url:
             {
                return @"^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}$";
             }
         case ValidationPatterns.IPv4:
             {
                 return  @"((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)";
             }
         case ValidationPatterns.IPv6:
             {
                 return @"((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)";
             }
         case ValidationPatterns.name:
             {
                 return @"^[a-zA-Z0-9-_\.]+$";
             }
         case ValidationPatterns.email:
             {
                 return @"^[a-zA-Z0-9-_\.]+@([A-z0-9][-A-z0-9]+\.)+[A-z]{2,4}$";
             }
         default:
             return null;
     }
 }