public HttpResponseMessage ReportUsage(Usage data)
        {
            if (data == null)
            {
                throw new HttpResponseException(new HttpResponseMessage
                {
                    StatusCode = HttpStatusCode.BadRequest,
                    Content    = new StringContent("No usage data provided")
                });
            }

            try
            {
                data.IPAddress = RequestHelpers.GetClientIpAddress(Request);
                _context.AddUsage(data);
            }
            catch (Exception e)
            {
                throw new HttpResponseException(new HttpResponseMessage
                {
                    StatusCode = HttpStatusCode.InternalServerError,
                    Content    = new StringContent(e.Message)
                });
            }

            return(new HttpResponseMessage(HttpStatusCode.OK));
        }