public async Task ShowLeastPositive(IDialogContext context, LuisResult result) { double sentiment = 1; ConversationState.User leastPositive = ConversationState.Users.First(); foreach (var u in ConversationState.Users) { if (u.Sentiment < sentiment) { leastPositive = u; sentiment = u.Sentiment; } } await context.PostAsync(BuildReply( sb => { { sb.AppendLine("The least positive user is:"); sb.AppendLine($"{leastPositive.name}: msgs={leastPositive.MessageCount}, sentiment={leastPositive.Sentiment}"); } })); context.Wait(MessageReceived); }
public async Task ShowLeastActive(IDialogContext context, LuisResult result) { int msgCount = int.MaxValue; ConversationState.User leastActiveU = null; foreach (var u in ConversationState.Users) { if (u.MessageCount <= msgCount) { leastActiveU = u;; msgCount = u.MessageCount; } } await context.PostAsync(BuildReply( sb => { { sb.AppendLine("The least active user is:"); sb.AppendLine($"{leastActiveU.name}: msgs={leastActiveU.MessageCount}, sentiment={leastActiveU.Sentiment}"); } })); context.Wait(MessageReceived); }
public async Task ShowStats(IDialogContext context, LuisResult result) { string name = ""; if (result.Entities.Count != 0) { name = GetNameFromPersonEntity(new List <EntityRecommendation>(result.Entities)); } ConversationState.User u = null; if (name != "" && ConversationState.Users.Any(user => user.name.ToLower() == name)) { u = ConversationState.Users.Where(user => user.name.ToLower() == name.ToLower()).FirstOrDefault(); } if (name == "" || u == null) { if (name != "") { await context.PostAsync(BuildReply( sb => { sb.AppendLine("User does not exist. I am showing stats for all users"); })); } await context.PostAsync(BuildReply( sb => { foreach (var x in ConversationState.Users) { sb.AppendLine($"{x.name}: msgs={x.MessageCount}, sentiment={x.Sentiment}"); } })); } else { await context.PostAsync(BuildReply( sb => { { sb.AppendLine($"{u.name}: msgs={u.MessageCount}, sentiment={u.Sentiment}"); } })); } context.Wait(MessageReceived); }