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