IncrementCachedRequests() private method

private IncrementCachedRequests ( ) : void
return void
Ejemplo n.º 1
0
        public GetResponse[] HandleCachingResponse(GetResponse[] responses, HttpJsonRequestFactory jsonRequestFactory)
        {
            var hasCachedRequests = false;
            var requestStatuses   = new RequestStatus[responses.Length];

            for (int i = 0; i < responses.Length; i++)
            {
                if (responses[i] == null || responses[i].Status == 304)
                {
                    hasCachedRequests = true;

                    requestStatuses[i] = responses[i] == null ? RequestStatus.AggressivelyCached : RequestStatus.Cached;
                    responses[i]       = responses[i] ?? new GetResponse {
                        Status = 0
                    };

                    foreach (string header in cachedData[i].Headers)
                    {
                        cachedData[i].Time           = SystemTime.UtcNow;
                        responses[i].Headers[header] = cachedData[i].Headers[header];
                    }
                    responses[i].Result = cachedData[i].Data.CloneToken();
                    jsonRequestFactory.IncrementCachedRequests();
                }
                else
                {
                    requestStatuses[i] = responses[i].RequestHasErrors() ? RequestStatus.ErrorOnServer : RequestStatus.SentToServer;

                    var nameValueCollection = new NameValueCollection();
                    foreach (var header in responses[i].Headers)
                    {
                        nameValueCollection[header.Key] = header.Value;
                    }
                    jsonRequestFactory.CacheResponse(url + requests[i].UrlAndQuery, responses[i].Result, nameValueCollection);
                }
            }

            if (hasCachedRequests == false || convention.DisableProfiling ||
                holdProfilingInformation.ProfilingInformation.Requests.Count == 0)
            {
                return(responses);
            }

            var lastRequest = holdProfilingInformation.ProfilingInformation.Requests.Last();

            for (int i = 0; i < requestStatuses.Length; i++)
            {
                lastRequest.AdditionalInformation["NestedRequestStatus-" + i] = requestStatuses[i].ToString();
            }
            lastRequest.Result = JsonConvert.SerializeObject(responses);

            return(responses);
        }
Ejemplo n.º 2
0
		public GetResponse[] HandleCachingResponse(GetResponse[] responses, HttpJsonRequestFactory jsonRequestFactory)
		{
			var hasCachedRequests = false;
			var requestStatuses = new RequestStatus[responses.Length];
			for (int i = 0; i < responses.Length; i++)
			{
				if (responses[i] == null || responses[i].Status == 304)
				{
					hasCachedRequests = true;

					requestStatuses[i] = responses[i] == null ? RequestStatus.AggressivelyCached : RequestStatus.Cached;
					responses[i] = responses[i] ?? new GetResponse { Status = 0 };

					foreach (string header in cachedData[i].Headers)
					{
						responses[i].Headers[header] = cachedData[i].Headers[header];
					}
					responses[i].Result = cachedData[i].Data.CloneToken();
					jsonRequestFactory.IncrementCachedRequests();
				}
				else
				{
					requestStatuses[i] = responses[i].RequestHasErrors() ? RequestStatus.ErrorOnServer : RequestStatus.SentToServer;

					var nameValueCollection = new NameValueCollection();
					foreach (var header in responses[i].Headers)
					{
						nameValueCollection[header.Key] = header.Value;
					}
					jsonRequestFactory.CacheResponse(url + requests[i].UrlAndQuery, responses[i].Result, nameValueCollection);
				}
			}

			if (hasCachedRequests == false || convention.DisableProfiling ||
				holdProfilingInformation.ProfilingInformation.Requests.Count == 0)
				return responses;

			var lastRequest = holdProfilingInformation.ProfilingInformation.Requests.Last();
			for (int i = 0; i < requestStatuses.Length; i++)
			{
				lastRequest.AdditionalInformation["NestedRequestStatus-" + i] = requestStatuses[i].ToString();
			}
			lastRequest.Result = JsonConvert.SerializeObject(responses);

			return responses;
		}