public async Task <HttpResponseMessage> PostHealthCheck([FromBody] HealthCheck hcm)
        {
            // Check required parameters.
            if (hcm.Equals(HealthCheck.Default))
            {
                return(this.Request.CreateResponse(HttpStatusCode.BadRequest));
            }
            if (null == this._operations)
            {
                return(this.Request.CreateResponse(HttpStatusCode.InternalServerError));
            }

            try
            {
                ServiceEventSource.Current.ServiceRequestStart(nameof(this.PostHealthCheck));

                // Call the operations class to add the health check.
                await this._operations.AddHealthCheckAsync(hcm);

                ServiceEventSource.Current.ServiceRequestStop(nameof(this.PostHealthCheck));
                return(this.Request.CreateResponse(HttpStatusCode.OK));
            }
            catch (ArgumentException ex)
            {
                ServiceEventSource.Current.Exception(ex.Message, ex.GetType().Name, nameof(this.PostHealthCheck));
                return(this.Request.CreateResponse(HttpStatusCode.BadRequest));
            }
            catch (Exception ex)
            {
                ServiceEventSource.Current.Exception(ex.Message, ex.GetType().Name, nameof(this.PostHealthCheck));
                return(this.Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex));
            }
        }
        public void HealthCheck_ConstructorTest()
        {
            HealthCheck hcDefault = new HealthCheck();

            Assert.IsNull(hcDefault.ServiceName);
            Assert.IsNull(hcDefault.SuffixPath);
            Assert.IsNull(hcDefault.Content);
            Assert.IsNull(hcDefault.MediaType);
            Assert.IsNull(hcDefault.Headers);
            Assert.IsNull(hcDefault.WarningStatusCodes);
            Assert.IsNull(hcDefault.ErrorStatusCodes);
            Assert.AreEqual(default(Guid), hcDefault.Partition);
            Assert.AreEqual(default(TimeSpan), hcDefault.Frequency);
            Assert.AreEqual(default(HttpMethod), hcDefault.Method);
            Assert.AreEqual(default(TimeSpan), hcDefault.ExpectedDuration);
            Assert.AreEqual(default(TimeSpan), hcDefault.MaximumDuration);
            Assert.AreEqual(default(DateTimeOffset), hcDefault.LastAttempt);
            Assert.AreEqual(default(long), hcDefault.FailureCount);
            Assert.AreEqual(default(long), hcDefault.Duration);
            Assert.AreEqual(default(HttpStatusCode), hcDefault.ResultCode);

            // Check this equals the default HealthCheck value.
            Assert.IsTrue(hcDefault.Equals(HealthCheck.Default));

            // Check the copy constructor.
            HealthCheck hc1 = new HealthCheck(hc);

            Assert.IsTrue(hc.Equals(hc1));
        }