Ejemplo n.º 1
0
    public static string ValidateResourcea(string resource, ResourceType type)
    {
        if (string.IsNullOrWhiteSpace(resource))
        {
            throw new InvalidResourceException("Resource is invalid");
        }

        string sanitized = resource;
        bool   valid     = false;

        if (type.HasFlag(ResourceType.MD5))
        {
            valid |= IsValidMD5(resource);
        }
        if (type.HasFlag(ResourceType.SHA1))
        {
            valid |= IsValidSHA1(resource);
        }
        if (type.HasFlag(ResourceType.SHA256))
        {
            valid |= IsValidSHA256(resource);
        }
        if (type.HasFlag(ResourceType.ScanId))
        {
            valid |= IsValidScanId(resource);
        }
        if (type.HasFlag(ResourceType.URL))
        {
            valid |= IsValidURL(resource, out sanitized);
        }
        if (type.HasFlag(ResourceType.IP))
        {
            valid |= IsValidIP(resource, out sanitized);
        }
        if (type.HasFlag(ResourceType.Domain))
        {
            valid |= IsValidDomain(resource, out sanitized);
        }

        if (!valid)
        {
            throw new InvalidResourceException($"Resource '{resource}' has to be one of the following: {string.Join(", ", type.GetIndividualFlags())}");
        }

        return(sanitized);
    }