Example #1
0
        private Action <IActivity> ShowEmailList(int expectCount = 3, int page = 0)
        {
            return(activity =>
            {
                var messageActivity = activity.AsMessageActivity();
                var prompt = EmailSharedResponses.ShowEmailPrompt;
                if (expectCount == 1)
                {
                    prompt = EmailSharedResponses.ShowOneEmailPrompt;
                }

                var totalEmails = ((MockServiceManager)this.ServiceManager).MailService.MyMessages;
                var showEmails = new List <Message>();
                for (int i = ConfigData.GetInstance().MaxDisplaySize *page; i < totalEmails.Count; i++)
                {
                    showEmails.Add(totalEmails[i]);
                }

                var replies = this.ParseReplies(prompt.Replies, new StringDictionary()
                {
                    { "TotalCount", totalEmails.Count.ToString() },
                    { "EmailListDetails", SpeakHelper.ToSpeechEmailListString(showEmails, TimeZoneInfo.Local, ConfigData.GetInstance().MaxReadSize) },
                });

                CollectionAssert.Contains(replies, messageActivity.Text);
                Assert.AreEqual(messageActivity.Attachments.Count, expectCount);
            });
        }
Example #2
0
        private Action <IActivity> ShowEmailList(int expectCount = 3, int page = 0)
        {
            return(activity =>
            {
                var messageActivity = activity.AsMessageActivity();
                var prompt = EmailSharedResponses.ShowEmailPrompt;
                if (page == 0)
                {
                    if (expectCount == 1)
                    {
                        prompt = EmailSharedResponses.ShowOneEmailPrompt;
                    }
                }
                else
                {
                    if (expectCount == 1)
                    {
                        prompt = EmailSharedResponses.ShowOneEmailPromptOtherPage;
                    }
                    else
                    {
                        prompt = EmailSharedResponses.ShowEmailPromptOtherPage;
                    }
                }

                var totalEmails = ((MockServiceManager)this.ServiceManager).MailService.MyMessages;
                var showEmails = new List <Message>();

                if (page < 0)
                {
                    var pagingInfo = this.ParseReplies(EmailSharedResponses.FirstPageAlready, new StringDictionary())[0];
                    Assert.IsTrue(messageActivity.Text.StartsWith(pagingInfo));
                }
                else if (page * ConfigData.GetInstance().MaxDisplaySize > totalEmails.Count)
                {
                    var pagingInfo = this.ParseReplies(EmailSharedResponses.LastPageAlready, new StringDictionary())[0];
                    Assert.IsTrue(messageActivity.Text.StartsWith(pagingInfo));
                }
                else
                {
                    for (int i = ConfigData.GetInstance().MaxDisplaySize *page; i < totalEmails.Count; i++)
                    {
                        showEmails.Add(totalEmails[i]);
                    }

                    var replies = this.ParseReplies(prompt, new StringDictionary()
                    {
                        { "TotalCount", totalEmails.Count.ToString() },
                        { "EmailListDetails", SpeakHelper.ToSpeechEmailListString(showEmails, TimeZoneInfo.Local, ConfigData.GetInstance().MaxReadSize) },
                    });

                    CollectionAssert.Contains(replies, messageActivity.Text);
                }
            });
        }
Example #3
0
        private Action <IActivity> ShowEmailFromSomeoneList()
        {
            return(activity =>
            {
                var messageActivity = activity.AsMessageActivity();

                var showedItems = ((MockServiceManager)this.ServiceManager).MailService.MyMessages;
                var replies = this.ParseReplies(EmailSharedResponses.ShowEmailPrompt.Replies, new StringDictionary()
                {
                    { "TotalCount", "1" },
                    { "EmailListDetails", SpeakHelper.ToSpeechEmailListString(showedItems, TimeZoneInfo.Local, ConfigData.GetInstance().MaxReadSize) },
                });
                Assert.AreEqual(messageActivity.Attachments.Count, 1);
            });
        }
Example #4
0
        protected async Task ShowMailList(WaterfallStepContext sc, List <Message> messages)
        {
            var state = await EmailStateAccessor.GetAsync(sc.Context);

            var cardsData = new List <EmailCardData>();

            foreach (var message in messages)
            {
                var nameListString = DisplayHelper.ToDisplayRecipientsString_Summay(message.ToRecipients);

                var emailCard = new EmailCardData
                {
                    Subject          = message.Subject,
                    Sender           = message.Sender.EmailAddress.Name,
                    NameList         = string.Format(CommonStrings.ToFormat, nameListString),
                    EmailContent     = message.BodyPreview,
                    EmailLink        = message.WebLink,
                    ReceivedDateTime = message.ReceivedDateTime == null
                    ? CommonStrings.NotAvailable
                    : message.ReceivedDateTime.Value.UtcDateTime.ToRelativeString(state.GetUserTimeZone()),
                    Speak = SpeakHelper.ToSpeechEmailDetailString(message),
                };
                cardsData.Add(emailCard);
            }

            var searchType = CommonStrings.Relevant;

            if (state.IsUnreadOnly)
            {
                searchType = string.Format(CommonStrings.RelevantFormat, CommonStrings.Unread);
            }
            else if (state.IsImportant)
            {
                searchType = string.Format(CommonStrings.RelevantFormat, CommonStrings.Important);
            }

            var stringToken = new StringDictionary
            {
                { "SearchType", searchType },
                { "EmailListDetails", SpeakHelper.ToSpeechEmailListString(messages) },
            };

            var reply = sc.Context.Activity.CreateAdaptiveCardGroupReply(EmailSharedResponses.ShowEmailPrompt, "Dialogs/Shared/Resources/Cards/EmailCard.json", AttachmentLayoutTypes.Carousel, cardsData, ResponseBuilder, stringToken);
            await sc.Context.SendActivityAsync(reply);
        }
Example #5
0
        private Action <IActivity> ShowEmailList()
        {
            return(activity =>
            {
                var messageActivity = activity.AsMessageActivity();

                // Get showed mails:
                var showedItems = ServiceManager.MailService.MyMessages;
                var replies = this.ParseReplies(EmailSharedResponses.ShowEmailPrompt, new StringDictionary()
                {
                    { "TotalCount", showedItems.Count.ToString() },
                    { "EmailListDetails", SpeakHelper.ToSpeechEmailListString(showedItems, TimeZoneInfo.Local, ConfigData.GetInstance().MaxReadSize) },
                });

                CollectionAssert.Contains(replies, messageActivity.Text);
                Assert.AreNotEqual(messageActivity.Attachments.Count, 0);
            });
        }