private async Task RecomendarItensAsync(IDialogContext context, IAwaitable <IMessageActivity> activity, LuisResult result, EnumTipoBusca tipoBusca) { var cidades = result.Entities?.Select(e => e.Entity); if (cidades == null || cidades.Count() == 0) { await context.PostAsync(TipoBusca.MensagemInformarCidade(tipoBusca)); _tipoBuscaAtual = tipoBusca; context.Wait((c, a) => RecomendarItens(c, a)); return; } else if (cidades.Count() > 1) { await context.PostAsync(TipoBusca.MensagemInformarApenasUmaCidade(tipoBusca)); } else { await RecomendarItens(context, activity, cidades.Single(), tipoBusca); } context.Done <string>(null); }
private async Task RecomendarItens(IDialogContext context, IAwaitable <IMessageActivity> activity, string cidade, EnumTipoBusca tipoBusca) { await context.PostAsync(TipoBusca.MensagemPesquisandoItens(tipoBusca)); using (var service = new ServicoYelp()) { var resposta = await service.BuscarItens(cidade, tipoBusca); var atividade = await activity as Activity; var mensagem = atividade.CreateReply(); var businesses = resposta.Businesses.ToList(); for (var i = 0; i < businesses.Count && i < MaximoResultados; i++) { var business = businesses[i]; mensagem?.Attachments.Add(MontaHeroCardResposta(business)); } await context.PostAsync(TipoBusca.MensagemItensEncontrados(tipoBusca, mensagem.Attachments.Count)); await context.PostAsync(mensagem); } context.Wait(MessageReceived); }