示例#1
0
            public async Task <Result <ReportPreCacheResponse> > ReportPreCache(ReportPreCacheRequest request)
            {
                const string api = "api/Factory/ReportPreCache";

                NameValueCollection query = HttpUtility.ParseQueryString(string.Empty);

                query["clear"] = request.Clear.ToString();
                query["clean"] = request.Clean.ToString();
                if (request.Passcode != null)
                {
                    query["passcode"] = request.Passcode;
                }

                Result <ReportPreCacheResponse> result = await _owner.GetAsync <Request, ReportPreCacheResponse>(api, query);

                return(result);
            }
        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));
        }