/// <summary>
        /// extend Url with configuration information
        /// </summary>
        /// <param name="ruleUrl"></param>
        /// <param name="dryRun"></param>
        /// <param name="saveMode"></param>
        /// <param name="impersonate"></param>
        /// <returns></returns>
        public static Uri AddToUrl(this Uri ruleUrl, bool dryRun = false, SaveMode saveMode = SaveMode.Default, bool impersonate = false)
        {
            var queryBuilder = new UriQueryBuilder();

            queryBuilder.AddIfNotDefault("dryRun", dryRun)
            .AddIfNotDefault("saveMode", saveMode)
            .AddIfNotDefault("execute", impersonate, valueString: "impersonated");

            return(queryBuilder.AddToUri(ruleUrl));
        }