public override bool Resolve(IFileProperties fileProperties)
        {
            TextureFileProperties textureFileProperties = fileProperties as TextureFileProperties;

            if (textureFileProperties == null)
            {
                throw new RuleException($"Resolve unable to cast {nameof(fileProperties)} arg to {nameof(TextureFileProperties)}, {nameof(fileProperties)}.Type = {fileProperties.GetType()}");
            }
            bool resolveWidth  = ResolveNumberValue(textureFileProperties.Width);
            bool resolveHeight = ResolveNumberValue(textureFileProperties.Height);

            //TODO consider supporting different width and height
            return(resolveWidth && resolveHeight);
        }
        public override bool Resolve(IFileProperties fileProperties)
        {
            BaseFileProperties baseFileProperties = fileProperties as BaseFileProperties;

            if (baseFileProperties == null)
            {
                throw new RuleException($"Resolve unable to cast {nameof(fileProperties)} arg to {nameof(BaseFileProperties)}, {nameof(fileProperties)}.Type = {fileProperties.GetType()}");
            }

            return(ResolveStringMatch(fileProperties.FileNameWithoutExtension));
        }