//private class HarEntry //{ // public int Index { get; set; } // public Entry Entry { get; set; } // public object Result { get; set; } //} private IEnumerable <SequenceItem> ProcessEntries(UrlRequest source, Log log) { // convert entries to sequence item -> send var tasks = new List <SequenceItem>(); var index = 0; foreach (var entry in log.Entries) { tasks.Add(ProcessEntry(source, index++, log, entry)); } //var results = await Task.WhenAll(tasks.ToArray()); return(tasks); }
/// <summary> /// This function converts a HarSharp POCO into a series of SequenceItemSend instances /// </summary> private SequenceItem ProcessEntry(UrlRequest source, int index, Log log, Entry entry) { var clone = JsonConvert.SerializeObject(this.sequenceItem); var ret = JsonConvert.DeserializeObject <SequenceItem>(clone); var urlTemplate = JsonConvert.DeserializeObject <UrlRequest>(JsonConvert.SerializeObject(source)); ret.command = $"{ret.command}-har-log-entries[{index}]"; ret.har = null; ret.send = new UrlRequest { url = entry.Request.Url.AbsoluteUri, http_method = entry.Request.Method, body = entry.Request.PostData?.Text, content_type = entry.Request.PostData?.MimeType, query = new KeyValueList(entry.Request.QueryString?.Select(q => new KeyValuePair <string, string>(q.Name, q.Value)).ToList()), header = new KeyValueList(entry.Request.Headers?.Select(q => new KeyValuePair <string, string>(q.Name, q.Value)).ToList()), save_body_filename = urlTemplate?.save_body_filename, //save_response_filename = urlTemplate?.save_response_filename save = urlTemplate.save }; return(ret); }