Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }