コード例 #1
0
        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}'.");
            }
        }
コード例 #2
0
    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();
    }