private static Dictionary <string, Dictionary <string, object> > ProcessResponse( Dictionary <string, Dictionary <string, object> > accumulator, PageLoadResponse pageLoad, List <MboxResponse> mboxes, string globalMbox) { if (pageLoad != null) { accumulator = AddOptions(accumulator, pageLoad.Options, globalMbox); } if (mboxes == null || mboxes.Count == 0) { return(accumulator); } for (var i = mboxes.Count - 1; i >= 0; i--) { var mbox = mboxes[i]; if (mbox == null) { continue; } accumulator = AddOptions(accumulator, mbox.Options, mbox.Name); } return(accumulator); }
private static bool HandlePageLoad( PrefetchResponse prefetchResponse, ExecuteResponse executeResponse, IList <Option> consequenceOptions, IList <Metric> consequenceMetrics, TraceHandler traceHandler) { PageLoadResponse pageLoad = null; if (prefetchResponse != null) { prefetchResponse.PageLoad ??= new PageLoadResponse(); pageLoad = prefetchResponse.PageLoad; } else if (executeResponse != null) { executeResponse.PageLoad ??= new PageLoadResponse(); pageLoad = executeResponse.PageLoad; } if (pageLoad == null) { return(false); } pageLoad.Trace = traceHandler?.CurrentTrace; if (consequenceOptions != null) { foreach (var option in consequenceOptions) { if (executeResponse != null) { option.EventToken = null; } if (option.Type == null && option.Content == null && option.EventToken == null && option.ResponseTokens == null) { continue; } pageLoad.Options ??= new List <Option>(); pageLoad.Options.Add(option); } } if (consequenceMetrics == null) { return(true); } foreach (var metric in consequenceMetrics .Where(metric => pageLoad.Metrics == null || !pageLoad.Metrics.Contains(metric))) { pageLoad.Metrics ??= new List <Metric>(); pageLoad.Metrics.Add(metric); } return(true); }
private static object UnhandledPageLoadResponse(PrefetchResponse prefetchResponse, ExecuteResponse executeResponse) { var response = new PageLoadResponse(); if (prefetchResponse != null) { prefetchResponse.PageLoad = response; return(null); } executeResponse.PageLoad = response; return(null); }
private static object UnhandledPageLoadResponse( PrefetchResponse prefetchResponse, ExecuteResponse executeResponse, TraceHandler traceHandler) { var response = new PageLoadResponse { Trace = traceHandler?.CurrentTrace }; if (prefetchResponse != null) { prefetchResponse.PageLoad = response; return(null); } executeResponse.PageLoad = response; return(null); }