public ReportPreCacheResponse ReportPreCache([FromUri] ReportPreCacheRequest request)
        {
            if (request == null)
            {
                throw new ArgumentNullException("request");
            }

            string passToCheck = ServiceHelper.GetSettingValue(ServiceHelper.Key_Access_Passcode);

            if (!string.IsNullOrWhiteSpace(passToCheck) && request.Passcode != passToCheck)
            {
                throw new ServiceException("Pre-cache cannot be reported - passcode is incorrect", HttpStatusCode.Unauthorized);
            }

            if (!PreCacheHelper.PreCacheExists)
            {
                // Return an empty report
                return(new ReportPreCacheResponse());
            }

            var cache = ServiceHelper.Cache;

            return(PreCacheHelper.ReportDocuments(cache, request.Clean));
        }