public override Task Convert(HttpContext arg, ref EasyRocksDb db, byte n, string[] requests) { if (requests.Length > 10000) { return(arg.Response.Send("too many requests")); } var norm = JsonConvert.DeserializeObject <Dictionary <DateTime, double> >(db.Get($">{n}") + "}"); arg.Response.SendChunk("N\tWortform\tLemma\tPOS\tDatum\tFrequenz\tFrequenz (rel.)\r\n", Encoding.UTF8).Wait(); foreach (var request in requests) { var ts = db.Get(request); if (string.IsNullOrEmpty(ts)) { continue; } var wlp = request.Split(new[] { "µ" }, StringSplitOptions.RemoveEmptyEntries); var key = $"{n}\t{wlp[0]}\t{wlp[1]}\t{wlp[2]}\t"; var dates = JsonConvert.DeserializeObject <Dictionary <DateTime, double> >(ts + "}"); foreach (var date in dates) { arg.Response.SendChunk($"{key}{date.Key:yyyy-MM-dd}\t{date.Value.ToString(_format)}\t{(date.Value / norm[date.Key] * 1000000.0).ToString(_format)}\r\n", Encoding.UTF8).Wait(); } } return(arg.Response.SendFinalChunk()); }
public abstract Task Convert(HttpContext arg, ref EasyRocksDb db, byte n, string[] requests);