/// <summary>
        /// True if the file is a .psd.jpeg, .psd.png, etc file.
        /// </summary>
        protected bool IsPathPSDToCompose(string virtualPath, NameValueCollection queryString = null)
        {
            string fileName = System.IO.Path.GetFileName(virtualPath); //Exclude the folders, just looking at the filename here.
            int    psd      = fileName.IndexOf(".psd", StringComparison.OrdinalIgnoreCase);

            if (psd > -1)
            {
                //We always take the .psd. syntax
                if (fileName.IndexOf(".psd.", StringComparison.OrdinalIgnoreCase) > -1)
                {
                    return(true);
                }

                if (queryString == null)
                {
                    queryString = c.Pipeline.ModifiedQueryString;
                }
                //But we only grab the .psd syntax if we detect our commands
                foreach (string s in PsdCommandBuilder.GetSupportedQuerystringKeys())
                {
                    if (!string.IsNullOrEmpty(queryString[s]))
                    {
                        return(true);
                    }
                }
            }
            return(false);
        }
        internal static NameValueCollection QueryStringMinusTriggers(NameValueCollection qs)
        {
            var nvc = new NameValueCollection(qs);

            foreach (string s in PsdCommandBuilder.GetSupportedQuerystringKeys())
            {
                nvc.Remove(s);
            }
            return(nvc);
        }
 public IEnumerable <string> GetSupportedQuerystringKeys()
 {
     return(PsdCommandBuilder.GetSupportedQuerystringKeys());
 }