public void WhenITryToPostTheHTMLToTheDomain(string httpTransactionType)
        {
            HTTPBased http = new HTTPBased();

            HTTPBased.ItemList response = new HTTPBased.ItemList();

            switch (httpTransactionType.ToLower())
            {
            case "post":
                this.context["Response"] = http.HttpPOST(
                    this.context.Keys.Any(key => key == "Domain") ? (string)this.context["Domain"] : null,
                    this.context.Keys.Any(key => key == "ResourcePath") ? (string)this.context["ResourcePath"] : null,
                    this.context.Keys.Any(key => key == "Query") ? (string)this.context["Query"] : null,
                    this.context.Keys.Any(key => key == "Header") ? (string)this.context["Header"] : null,
                    this.context.Keys.Any(key => key == "Payload") ? (string)this.context["Payload"] : null);
                break;

            case "get":
                this.context["Response"] = http.HttpGET(
                    this.context.Keys.Any(key => key == "Domain") ? (string)this.context["Domain"] : null,
                    this.context.Keys.Any(key => key == "ResourcePath") ? (string)this.context["ResourcePath"] : null,
                    this.context.Keys.Any(key => key == "Query") ? (string)this.context["Query"] : null,
                    this.context.Keys.Any(key => key == "Header") ? (string)this.context["Header"] : null,
                    this.context.Keys.Any(key => key == "Payload") ? (string)this.context["Payload"] : null);
                break;

            default:
                throw new ArgumentException($"Only supporting POST and GET.  Got [{httpTransactionType}]", "httpTransactionType");
            }

            this.context["TryException"] = http.TryException;
        }
        public static void Example_SimpleGetUsingParameters()
        {
            // To prevent Log from output messages to Console we catch them and tell Log to not output to console.
            Log.LogOutputDelegate = LogDelegate;
            Log.LogToConsole      = false;

            // Ensure Repository has been cleared - incase any examples have changed anything...
            Repository.ClearRepositoryAll();
            HTTPBased httpRequest = new HTTPBased();

            try
            {
                HTTPBased.ItemList response = httpRequest.HttpGET("postman-echo.com", "/get", "foo=bar&alpha=7", "content-type: text/plain\r\naccept: */*\r\nhost: postman-echo.com\r\naccept-encoding: identity\r\nconnection: close\r\n");

                OutputDetails("Example of a simple HTTP GET", httpRequest, response,
                              $"Domain postman-echo.com exists and just echo's the get request in the JSON.  So we",
                              "expect the response to contain our requests arguments (foo=bar and alpha=7) in the",
                              "JSON 'args' field", "",
                              $"Note how the header line 'Content-Length: 0' has been automatically added in the.",
                              "request header.");
            }
            catch (Exception ex)
            {
                Console.WriteLine("Exception: " + ex.Message);
            }
        }