Beispiel #1
0
        public async Task <IReply> GetRate(ParameterBag bag, Chat chat)
        {
            int currencyId = int.Parse(bag.GetObjectAsString("currencyId"));
            int marketId   = int.Parse(bag.GetObjectAsString("marketId"));
            var res        = await _api.GetCurrencyRate(currencyId, marketId);

            return(RenderRate(res));
        }
        public async Task <IReply> Subscribe(ParameterBag parameters, Chat chat)
        {
            int currencyId = int.Parse(parameters.GetObjectAsString("currencyId"));
            int marketId   = int.Parse(parameters.GetObjectAsString("marketId"));

            await _api.Subscribe((int)chat.Id, currencyId, marketId);


            return(new Reply()
            {
                Text = "You successfully subscribed for rate updates! You can stop receiving them by unsibscribing"
            });
        }
        public async Task <IReply> Unsubscribe(ParameterBag bag, Chat chat)
        {
            await _api.Unsubscribe((int)chat.Id, int.Parse(bag.GetObjectAsString("currencyId")));

            return(new Reply()
            {
                Text = "Unsubscribed successfully. Now you will not recive notifications"
            });
        }
        public async Task <IReply> GetAwailableMarketsByCurrency(ParameterBag bag, Chat chat)
        {
            int currencyId = int.Parse(bag.GetObjectAsString("currencyId"));
            var res        = await _api.GetAvailableMarkets(currencyId);

            var keyboard = new List <InlineKeyboardButton>();

            foreach (var market in res)
            {
                keyboard.Add(new InlineKeyboardButton()
                {
                    CallbackData = $"{bag.GetObjectAsString("command")} {market.Id}",
                    Text         = market.Name
                });
            }

            return(new MenuReply()
            {
                Markup = new InlineKeyboardMarkup(keyboard),
                Text = "<b>Markets list:</b>"
            });
        }