public HttpResponseMessage Get() { Version version = typeof(BulkController).Assembly.GetName().Version; var info = new { name = "winlogbeat-firehose-proxy", version = new { number = version.ToString() } }; return(new HttpResponseMessage(HttpStatusCode.OK) { Content = JsonHttpContent.Create(info) }); }
public async Task <HttpResponseMessage> PostAsync(HttpRequestMessage request) { Stopwatch watch = new Stopwatch(); bool hadErrors = false; using (IAmazonKinesisFirehose firehose = m_firehoseProvider.Create()) using (Stream content = await request.Content.ReadAsStreamAsync()) using (StreamReader reader = new StreamReader(content)) { for (; ;) { List <Record> records = await ReadRecordsAsync(reader); if (records.Count == 0) { break; } bool published = await TryPublishRecordsAsync(firehose, records); if (!published) { hadErrors = true; } } } watch.Stop(); var result = new { took = watch.ElapsedMilliseconds, errors = hadErrors, items = Enumerable.Empty <object>() }; return(new HttpResponseMessage(HttpStatusCode.OK) { Content = JsonHttpContent.Create(result) }); }