Beispiel #1
0
        public async Task SendActivity(IBotContext context, IList <IActivity> activities, MiddlewareSet.NextDelegate next)
        {
            activities
            .Where(activity => activity.Type.Equals(ActivityTypes.Message))
            .Select(activity => activity.AsMessageActivity())
            .ToList()
            .ForEach(activity =>
            {
                int wordCount = TypistUtility.GetWordCount(activity.Text);
                int timeInMs  = TypistUtility.CalculateTimeToType(_typistWordsPerMinute, wordCount);

                Activity typingActivity = ((Activity)context.Request).CreateReply();
                typingActivity.Type     = ActivityTypes.Typing;
                typingActivity.Value    = timeInMs;

                Activity delayActivity = ((Activity)context.Request).CreateReply();
                delayActivity.Type     = ActivityTypesEx.Delay;
                delayActivity.Value    = timeInMs;

                int indexOfActivity = activities.IndexOf(activity);
                activities.Insert(indexOfActivity, delayActivity);
                activities.Insert(indexOfActivity, typingActivity);
            });

            await next();
        }
        public void CalculateTimeToType(int expected, int wordsPerMinute, int wordCount)
        {
            int actual = TypistUtility.CalculateTimeToType(wordsPerMinute, wordCount);

            Assert.Equal(expected, actual);
        }
        public void MessageCountTest(int expected, string input)
        {
            int actual = TypistUtility.GetWordCount(input);

            Assert.Equal(expected, actual);
        }