/// <summary>
        ///  Send a request to the POST API endpoint
        /// </summary>
        /// <param name="logType"></param>
        /// <param name="message"></param>
        /// <param name="customerId"></param>
        /// <param name="sharedKey"></param>
        // ReSharper disable once MemberCanBePrivate.Global
        private async System.Threading.Tasks.Task <System.Net.Http.HttpResponseMessage> PostData(System.String logType, System.String message, System.String customerId, System.String sharedKey)
        {
            var url = $"https://{customerId}.ods.opinsights.azure.com/api/logs?api-version=2016-04-01";

#if DEBUG
            System.Console.WriteLine($"{{ {System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.FullName}.{System.Reflection.MethodBase.GetCurrentMethod().Name} : {{");
            System.Console.WriteLine($"\"customerId\" : \"{customerId}\",");
            System.Console.WriteLine($"\"logType\" : \"{logType}\",");
            System.Console.WriteLine($"\"sharedKeySecret\" : \"{sharedKey}\",");
            System.Console.WriteLine($"\"message\" : {{ {message}  }}, ");
            System.Console.WriteLine($"\"url\" : \"{url}\" , ");
#endif

            var response =
                new System.Threading.Tasks.Task <System.Net.Http.HttpResponseMessage>(() => null);
            // Note the formatting of the datestring vs timestamp
            var datestring    = System.DateTime.UtcNow.ToString("r");
            var authorization = this.GetAuthorizationHash(message, datestring, customerId, sharedKey);

            var client = new System.Net.Http.HttpClient
            {
                Timeout = this.WebTimeOut
            };
            try
            {
                client.DefaultRequestHeaders.Add("Accept", "application/json");
                client.DefaultRequestHeaders.Add("Log-Type", logType);
                client.DefaultRequestHeaders.Add("Authorization", authorization);
                client.DefaultRequestHeaders.Add("x-ms-date", datestring);

                // let the Log Analytics HTTP DataCollector API assign the Timestamp
                //System.Console.WriteLine(Program.TimeStampField);
                //client.DefaultRequestHeaders.Add("time-generated-field", Program.TimeStampField);

                System.Net.Http.HttpContent httpContent = new System.Net.Http.StringContent(message, System.Text.Encoding.UTF8);
                httpContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json");
                response = client.PostAsync(new System.Uri(url), httpContent);

#if DEBUG
                System.Console.WriteLine($"\"PostDate response\": {{ {response.ToJson()} }}");
#endif
            }
            catch (System.Exception excep)
            {
                var stateMsg = $"Error E00696 in \"{System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.FullName}.{System.Reflection.MethodBase.GetCurrentMethod().Name}\" sending \"{message.ToJson()}\" to \"{url}\"";
                // ReSharper disable once UnusedVariable
                var ex         = new System.Exception(stateMsg, excep);
                var logMessage = new Generic.LogMessage <System.String>(Microsoft.Extensions.Logging.LogLevel.Error, Events.E00696, stateMsg, excep, this.AzureDataCollectorFormatter);
                this.AddMessage(logMessage);
#if DEBUG
                System.Console.WriteLine($"\"PostDate Exception\": {{ {excep.ToJson()} }}");
#endif
            }
#if DEBUG
            finally
            {
                System.Console.WriteLine($"}}");
            }
#endif
            return(await response);
        }