Exemple #1
0
        private string MenuToString(List <lMenu> menus)
        {
            string message = "";

            foreach (var m in menus)
            {
                lMenu menu = m;

                message += menu.Menu + "(" + menu.Size + ") " + this.QuantityToString(menu.Quantity) + "\n\n";
            }

            message += "\n\n메뉴를 추가하시려면 계속 말씀해 주시고 주문을 끝내려면 '주문완료'라고 말씀해 주세요";

            return(message);
        }
Exemple #2
0
        public async Task MessageReceivedAsync(IDialogContext context, IAwaitable <IMessageActivity> argument)
        {
            var activity = await argument;

            Entities.GreatWallLUIS greatWallResult = await LuisClient.ParseUserInput(activity.Text);

            string intent = greatWallResult.intents[0].intent;

            if (activity.Text == "주문완료")
            {
                if (Menus.Count == 0)
                {
                    await context.PostAsync("메뉴를 먼저 주문해 주십시오");
                }
                else
                {
                    Menus.Clear();
                    await context.PostAsync("주문이 완료 되었습니다. 곧 배달해 드리겠습니다.");
                }
            }
            else
            {
                switch (intent)
                {
                case "주문":
                    lMenu menu = new lMenu();
                    menu.Size     = "보통";
                    menu.Quantity = 1;
                    Menus.Add(menu);

                    foreach (lEntity e in greatWallResult.entities)
                    {
                        if (e.type == "메뉴")
                        {
                            lMenu temp = Menus[Menus.Count - 1];
                            temp.Menu = e.entity.Replace(" ", "");

                            Menus[Menus.Count - 1] = temp;
                        }
                        else if (e.type == "수량")
                        {
                            lMenu temp = Menus[Menus.Count - 1];
                            temp.Quantity = this.TextToQuantity(e.entity.Replace(" ", ""));

                            Menus[Menus.Count - 1] = temp;
                        }
                        else if (e.type == "크기")
                        {
                            lMenu temp = Menus[Menus.Count - 1];
                            temp.Size = e.entity.Replace(" ", "");

                            Menus[Menus.Count - 1] = temp;
                        }
                    }

                    string order = this.MenuToString(this.Menus);
                    await context.PostAsync(order);


                    break;

                case "배달":
                    await context.PostAsync("지금 출발했습니다. 조금만 기다려 주십시오");

                    break;

                case "인사":
                    await context.PostAsync("안녕하세요 신속배달 만리장성 봇입니다. 무엇을 도와드릴까요?");

                    break;

                default:
                    break;
                }
            }

            context.Wait(MessageReceivedAsync);
        }