public override async Task HandleAsync(CallbackQueryUpdateMessage message) { var mainMetric = _metricRepository.GetMainByExternalId(message.ChatId); if (mainMetric == null) { await _botClient.SendTextMessageAsync(message, MessageCode.NoMainMetric); return; } var values = _valueRepository.GetByMetricId(mainMetric.Id, 1, int.MaxValue); if (values.Count() < 2) { await _botClient.SendTextMessageAsync(message, MessageCode.ToFewValues); return; } var plotData = new PlotDataFactory().ValuesTo(values, mainMetric.ToString()); var filename = FileName.GetPlotFilename(message.UpdateId.ToString()); IFileService fileService = new ScottPlotService(new PngFileName(filename), plotData); using (var plotService = new FileReaderService(fileService)) { var stream = plotService.GetFileStream(); await _botClient.SendFileAsync(message.ChatId, stream, filename); } }
private byte[] CreatePlotWith(string filename, Collection <Value> values) { var title = "Height (cm)"; var plotData = new PlotDataFactory().ValuesTo(values, title); IFileService fileService = new ScottPlotService(new PngFileName(filename), plotData); var plotService = new FileReaderService(fileService); return(plotService.CreateFile()); }