private async Task <DialogTurnResult> ActStepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken) { string result = stepContext.Context.Activity.Text; MainDetail detail = new MainDetail(); //Luis 연동 체크 if (string.IsNullOrEmpty(Configuration["LuisAppId"]) || string.IsNullOrEmpty(Configuration["LuisAPIKey"]) || string.IsNullOrEmpty(Configuration["LuisAPIHostName"])) { detail = null; } else { detail = await luisHelper.ExecuteLuisQuery(Logger, stepContext.Context, cancellationToken); } //대화 의도에 따른 각각의 대화흐름 시작 switch (detail.intent) { case "버스": return(await stepContext.BeginDialogAsync(nameof(BusInformationDialog), (BusDetails)detail, cancellationToken)); case "미세먼지": return(await stepContext.BeginDialogAsync(nameof(WeatherInformationDialog), (DustDetails)detail, cancellationToken)); case "직업": return(await stepContext.BeginDialogAsync(nameof(WorkDialog), (WorkDetails)detail, cancellationToken)); case "학식메뉴": await stepContext.Context.SendActivityAsync(MessageFactory.Text("https://www.hansung.ac.kr/portlet-repositories/fckeditor/images/7qHyuRAiKcc=/1557707052583.png")); return(await stepContext.EndDialogAsync(null, cancellationToken)); case "트랙정보": return(await stepContext.BeginDialogAsync(nameof(TrackInfoDialog), (TrackInfoDetails)detail, cancellationToken)); case "전화번호": return(await stepContext.BeginDialogAsync(nameof(PhoneAdressDialog), (PhoneDetails)detail, cancellationToken)); case "트랙정보카드": return(await stepContext.BeginDialogAsync(nameof(TrackInfoCardDialog), (TrackInfoCardDetail)detail, cancellationToken)); case "교수님": return(await stepContext.BeginDialogAsync(nameof(ProfessorsDialog), (ProfessorsDetail)detail, cancellationToken)); case "맛집": return(await stepContext.BeginDialogAsync(nameof(MatjeepchoochunDialog), (MatjeepchoochunDetail)detail, cancellationToken)); case "공지사항": return(await stepContext.BeginDialogAsync(nameof(NoticeDialog), (NoticeDetail)detail, cancellationToken)); case "장학제도": await stepContext.Context.SendActivityAsync(MessageFactory.Text("https://www.hansung.ac.kr/web/www/life_02_01_t1")); return(await stepContext.EndDialogAsync(null, cancellationToken)); default: await stepContext.Context.SendActivityAsync(MessageFactory.Text("잘 이해하지 못했어요. 다시 질문해주세요")); return(await stepContext.EndDialogAsync(null, cancellationToken)); } }
public override string serialize(object obj) { MainDetail md = (MainDetail)obj; StringBuilder builder = new StringBuilder(); // opening tag builder.Append("<"); builder.Append(getXmlNodeName()); builder.Append(">"); // title builder.Append("<title>"); builder.Append(md.getTitle()); builder.Append("</title>"); // description builder.Append("<descr><![CDATA["); builder.Append(md.getDescr()); builder.Append("]]></descr>"); // media files MediaFilesXmlAdapter mfxa = new MediaFilesXmlAdapter(md.getMediaFiles()); string mediaFilesXml = mfxa.serialize(); builder.Append(mediaFilesXml); // closing tag builder.Append("</"); builder.Append(getXmlNodeName()); builder.Append(">"); return(builder.ToString()); }
public override object parse(XmlNode objNode) { string title = objNode.SelectSingleNode("title").InnerText.Trim(); string descr = objNode.SelectSingleNode("descr").InnerText.Trim(); MainDetail mainDetail = new MainDetail(title, descr); // parse media files MediaFilesXmlAdapter mediaFilesParser = new MediaFilesXmlAdapter(mainDetail.getMediaFiles()); XmlNode mediaFilesNode = objNode.SelectSingleNode(mediaFilesParser.getXmlNodeName()); mediaFilesParser.parse(mediaFilesNode); return(mainDetail); }
public MainDetailLinkLabel(MainDetail detail, Form poiBrowser) { this.detail = detail; this.poiBrowser = poiBrowser; this.mainDetailPanel = new MainDetailPanel(detail, poiBrowser); }
public async Task <MainDetail> ExecuteLuisQuery(ILogger logger, ITurnContext turnContext, CancellationToken cancellationToken) { MainDetail detail = new MainDetail(); try { LuisRecognizer luisRecognizer = new LuisRecognizer(luisApplication); recognizerResult = await luisRecognizer.RecognizeAsync(turnContext, cancellationToken); //높은 점수의 의도 저장 var(intent, score) = recognizerResult.GetTopScoringIntent(); //대화의도에 따른 엔티티 저장 switch (intent) { case "버스": BusDetails busDetails = new BusDetails(); busDetails.intent = intent; busDetails = getLuisEntites(busDetails); detail = busDetails; break; case "미세먼지": DustDetails dustDetails = new DustDetails(); dustDetails.intent = intent; dustDetails = getDustLuisEntites(dustDetails); detail = dustDetails; break; case "장학제도": detail.intent = intent; break; case "전화번호": PhoneDetails phoneDetails = new PhoneDetails(); phoneDetails.intent = intent; phoneDetails = getPhoneEntites(phoneDetails); detail = phoneDetails; break; case "교수님": ProfessorsDetail pfDetail = new ProfessorsDetail(); pfDetail.intent = intent; pfDetail = getProfessorEntites(pfDetail); detail = pfDetail; break; case "트랙정보": TrackInfoCardDetail trackInfoCardDetail = new TrackInfoCardDetail(); trackInfoCardDetail.intent = intent; detail = trackInfoCardDetail; break; case "공지사항": NoticeDetail noticeDetail = new NoticeDetail(); noticeDetail.intent = intent; detail = noticeDetail; break; case "맛집": MatjeepchoochunDetail matjeepchoochunDetail = new MatjeepchoochunDetail(); matjeepchoochunDetail.intent = intent; matjeepchoochunDetail = getMatjeepchoochunEntites(matjeepchoochunDetail); detail = matjeepchoochunDetail; break; case "학식메뉴": detail.intent = intent; break; case "로그인": MainDetail loginDetail = new MainDetail(); loginDetail.intent = intent; detail = loginDetail; break; case "시간표": MainDetail timeDetail = new MainDetail(); timeDetail.intent = intent; detail = timeDetail; break; case "열람실": MainDetail seatDetail = new MainDetail(); seatDetail.intent = intent; detail = seatDetail; break; } } catch (Exception e) { await turnContext.SendActivityAsync(MessageFactory.Text("예기치 못한 오류가 발생하였습니다. 다시 시도해주십시오\n" + e.Message), cancellationToken); } return(detail); }
public MainDetailPanel(MainDetail detail, Control poiBrowser) { this.detail = detail; this.poiBrowser = poiBrowser; initialize(); }