private async Task <DialogTurnResult> NoticeViewAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken) { var notice = stepContext.Context.Activity.Text; var index = NOTICENAME.IndexOf(notice); var client = new HttpClient(); var response = await client.GetAsync(URIS[index]); if (response.IsSuccessStatusCode) { var result = await response.Content.ReadAsStringAsync(); var html = new HtmlDocument(); html.LoadHtml(result); var htmlNode = html.DocumentNode.Descendants("table").Where(x => x.GetAttributeValue("class", "").Equals("bbs-list")).First().ChildNodes[7]; var notices = NoticeDivider(htmlNode.ChildNodes); var cardGenerator = new CardGenerator(); await cardGenerator.AttachNoticeCard(stepContext.Context, notices, notice, URIS[index], cancellationToken); } else { await stepContext.Context.SendActivityAsync("공지사항을 불러오는데 실패했습니다"); } return(await stepContext.EndDialogAsync(cancellationToken)); }