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