Exemple #1
0
        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);