public async Task Run() { var query = this.console.AskForText("Enter the query:"); this.console.WriteLine(); this.console.WriteLine("Matching events:"); var events = (await this.jsonFileRepository.LoadAll()).ToList(); var descriptionFilter = this.eventFilterFactory.CreateDescriptionFilter(query); var locationFilter = this.eventFilterFactory.CreateLocationFilter(query); var summaryFilter = this.eventFilterFactory.CreateSummaryFilter(query); var orFilter = this.eventFilterFactory.CreateOrFilter(descriptionFilter, locationFilter, summaryFilter); var filteredEvents = events.Include(orFilter).ToList(); filteredEvents = filteredEvents .Distinct(this.eventComparer) .OrderBy(e => e.End.Value) .ToList(); var duration = TotalTimeCalculator.CalculateTotalTime(filteredEvents); if (filteredEvents.Count > 0) { await this.showEventsStepHandler.ShowEvents(filteredEvents); this.console.WriteLine($"{filteredEvents.Count} events found for a total of {duration} duration."); this.console.WriteLine(); } else { this.console.WriteLine($"No events found for query '{query}'."); } }
public override async Task Run() { var events = (await this.jsonFileRepository.LoadAll()).ToList(); var duration = TotalTimeCalculator.CalculateTotalTime(events); this.console.WriteLine($"{events.Count} events found for a total of {duration} duration."); this.console.WriteLine(); }