public async Task GetStatisticsPerPeriod(DiscordRequest request, Contexts contexts) { var period = _reportsService.SelectPeriod(request.Arguments.FirstOrDefault()?.Value); if (implementedBySplitter.Contains(period)) { var query = new GetMessagesStatisticsQuery(period); var result = await this._queryBus.ExecuteAsync(query); var periodStats = result.PeriodStatistics.Where(x => x.Count > 0); // todo return; } var getMessages = new GetMessagesQuery(contexts.Server.Id); var messages = this._queryBus.Execute(getMessages).Messages.ToList(); var report = _reportsService.CreateReport(messages, period); Log.Information("Generated statistics for time range {start} {end}", report.TimeRange.Start, report.TimeRange.End); #if DEBUG PrintDebugStats(report); #endif var path = _chartsService.GetImageStatisticsPerPeriod(report); var messagesService = _messagesServiceFactory.Create(contexts); await messagesService.SendFile(path); }
private void GetTaskToDosing() { var taskQueueItems = TaskQueueItemsService.ListTaskQueueItems(); if (taskQueueItems.Any()) { var taskQueueItem = taskQueueItems.OrderBy(x => x.Order).First(); var task = TasksReader.GetById(taskQueueItem.Task.Id); var recipe = RecipesReader.GetById(task.Recipe.Id); var containers = CheckMaterials(recipe); if (containers != null) { var parameters = GetValues(task, recipe, containers); if (parameters != null) { var isOk = LoadValues(parameters); if (isOk) { var taskId = new Dictionary <ApiOpcParameter, string> { { CurrentTaskIdParameter, task.Id.ToString() } }; var taskIdLoadOk = LoadValues(taskId); if (taskIdLoadOk) { ReportsService.CreateReport(task); TaskQueueItemsService.Delete(taskQueueItem.Id); } else { Logger.Error("Ошибка записи CurrentTaskId."); } } else { Logger.Error("Ошибка записи параметров."); } } else { Logger.Error("Отсутствуют некоторые параметры."); } } else { Logger.Error("Отсутствуют некоторые материалы в контейнерах."); MessageBox.Show("Отсутствуют некоторые материалы в контейнерах"); } } else { Logger.Error("Отсутствуют задания в очереди."); } }
public long Create(ReportItemDto report) { return(reportService.CreateReport(report)); }