public async Task <RasaActionOutput> HandleAsync(RasaActionInput actionRequest)
        {
            RasaEvent lastUserMessage = actionRequest.Tracker.Events.LastOrDefault(e => e.Type == "user");
            string    entityType      = lastUserMessage.ParseData.Entities
                                        .OrderByDescending(entity => entity.Confidence)
                                        .FirstOrDefault(entity => entity.Name == "EntityType")?.Value;

            IEnumerable <string> results = new List <string>();

            if (entityType == "projects")
            {
                var collection = mongoDatabase.GetCollection <Project>(entityType);
                var cursor     = await collection.FindAsync(project => true);

                var projects = await cursor.ToListAsync();

                results = projects.Select(project => project.Name);
            }

            return(new RasaActionOutput
            {
                Responses = results.Select((result, index) =>
                                           new TextResponse
                {
                    Text = $"[{index+1}] {entityType}: {result}"
                })
            });
        }
        public async Task <RasaActionOutput> HandleAsync(RasaActionInput actionRequest)
        {
            var projectsCollection = mongoDatabase.GetCollection <Project>("projects");
            var cursor             = await projectsCollection.FindAsync(project => true);

            var projects = await cursor.ToListAsync();

            return(new RasaActionOutput
            {
                Responses = projects.Select(project => new TextResponse
                {
                    Text = $"- {project.Name}"
                })
            });
        }