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}" }) }); }