コード例 #1
0
        public override async Task <IExecutorResponse> ExecuteCommandAsync(string command)
        {
            GroupCollection commandParams = this.GetParametersList(command);

            var    parameter = commandParams[1].Value;
            ICaffe caffe     = await _caffeService.GetCaffe(parameter).ConfigureAwait(false);

            if (caffe == null)
            {
                return(new ExecutorResponse("can not find caffe"));
            }

            IMenu menu = await _menuService.GetMenuByCaffeId(caffe.Id).ConfigureAwait(false);

            if (menu == null)
            {
                return(new ExecutorResponse($"can not find menu in caffe {caffe.Name}"));
            }

            var dishes = await _dishService.GetAllDishesByMenuId(menu.Id).ConfigureAwait(false);

            var beverages = await _beverageService.GetAllBeveragesByMenuId(menu.Id).ConfigureAwait(false);

            return(new ExecutorResponse(new List <MenuViewModel> {
                menu.ToViewModel(caffe.Name, dishes, beverages)
            }));


            ////FIXME: @igk hack to avoid compilation error
            //await Task.Delay(1);
            ////FIXME: NOT IMPLEMENTED
            //return new ExecutorResponse("can not preceed menu");
        }
コード例 #2
0
        public async Task RespondToCaffe(ICaffe caffe)
        {
            float  time     = caffe.DistanceFromOffice / 80;
            string response = "###" + caffe.Name + "\n\n"
                              + "##Description:\n\n" + caffe.Description + "\n\n"
                              + "##Price:\n\n" + caffe.Lunch2Price.ToString() + " hrn for 2 dishes\n\n"
                              + caffe.Lunch3Price.ToString() + " hrn for 3 dishes\n\n"
                              + "##Rating:\n\n" + caffe.Rating.ToString() + "\n\n"
                              + "\n\n" + caffe.LinkToImage + "\n\n"
                              + "##Distance from office:\n\n" + caffe.DistanceFromOffice.ToString() + " metters\n\n"
                              + "approximately " + time.ToString("0") + " minutes to go\n\n"
                              + "\n\n***\n\n***\n\n\n\n";

            await this.Context.SendActivity(response);
        }