private async Task <DialogTurnResult> CotacaoListagemStepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken)
        {
            string mensagem = string.Empty;
            var    servico  = new CotacaoMoeda();

            try
            {
                var cotacoesSolicitadas = await servico.Listagem();

                mensagem  = cotacoesSolicitadas.Count > 1 ? "Cotações" : "Cotação";
                mensagem += ":\n\n";

                foreach (var cotacao in cotacoesSolicitadas)
                {
                    mensagem += $"**{cotacao.name} ({cotacao.code})**:  \n" +
                                $"Valor de Compra R$ {cotacao.bid} \n" +
                                $"Valor de Venda R$ {cotacao.ask} \n" +
                                $"Variação R$ {cotacao.varBid} \n" +
                                $"Porcentagem da Variação R$ {cotacao.pctChange} \n" +
                                $"Máximo R$ {cotacao.high} \n" +
                                $"Mínimo R$ {cotacao.low} \n";
                }
            }
            catch (Exception ex)
            {
                mensagem = "Desculpe, não consegui buscar essa informação no momento. Se importa de tentar novamente?";
            }

            return(await stepContext.NextAsync(mensagem, cancellationToken));
        }
예제 #2
0
        public async Task MoedaListagem(IDialogContext context, LuisResult result)
        {
            var service = new CotacaoMoeda();
            var list    = await service.Listagem();

            await context.PostAsync("Moedas disponíveis para consulta:");

            foreach (var item in list)
            {
                await context.PostAsync($"{item.nome} ({item.moeda})");
            }

            context.Wait(MessageReceived);
        }
예제 #3
0
        public async Task MoedaListagem(IDialogContext context, LuisResult result)
        {
            var message = string.Empty;
            var service = new CotacaoMoeda();

            try
            {
                var list = await service.Listagem();

                var cardActions = new List <CardAction>();

                cardActions.Add(new CardAction()
                {
                    Title = $"Todas as cotações",
                    Type  = ActionTypes.ImBack,
                    Value = $"Cotações do dia"
                });

                foreach (var item in list)
                {
                    cardActions.Add(new CardAction()
                    {
                        Title = $"{item.nome} ({item.moeda})",
                        Type  = ActionTypes.ImBack,
                        Value = $"Cotação {item.nome}"
                    });
                }

                var card = new HeroCard()
                {
                    Title    = "Moedas disponíveis",
                    Subtitle = "Clique na moeda que deseja consultar",
                    Buttons  = cardActions
                };

                var activity = context.MakeMessage();
                activity.Id = new Random().Next().ToString();
                activity.Attachments.Add(card.ToAttachment());

                await context.PostAsync(activity);
            }
            catch (Exception ex)
            {
                message = "Desculpe, não consegui buscar essa informação no momento. Se importa de tentar novamente?";
                await context.PostAsync(message);
            }

            context.Wait(MessageReceived);
        }