public async Task <string> Format(HttpRequest request, IModel <string> tokenizer) { var parser = new HttpQueryParser(new QueryParser <string>(_sessionFactory, tokenizer, _log)); var query = await parser.ParseRequest(request); var dictionary = new Dictionary <string, object>(); parser.ParseQuery(query, dictionary); return(JsonConvert.SerializeObject(dictionary, Formatting.Indented)); }
public async Task <ResponseModel> Read(HttpRequest request, IStringModel model) { var timer = Stopwatch.StartNew(); var take = 100; var skip = 0; if (request.Query.ContainsKey("take")) { take = int.Parse(request.Query["take"]); } if (request.Query.ContainsKey("skip")) { skip = int.Parse(request.Query["skip"]); } IQuery query = await _httpQueryParser.ParseRequest(request); if (query == null) { return(new ResponseModel { MediaType = "application/json", Total = 0 }); } #if DEBUG var debug = new Dictionary <string, object>(); _httpQueryParser.ParseQuery(query, debug); _logger.LogInformation(JsonConvert.SerializeObject(debug)); #endif using (var readSession = _sessionFactory.CreateReadSession()) { var result = readSession.Read(query, skip, take); using (var mem = new MemoryStream()) { Serialize(result.Docs, mem); return(new ResponseModel { MediaType = "application/json", Documents = result.Docs, Total = result.Total, Body = mem.ToArray() }); } } }