Example #1
0
        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);
        }
Example #2
0
        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);
        }