Beispiel #1
0
 public override void Execute(ITelegramBotClient client, Message message)
 {
     try
     {
         var rates        = NBU.GetRatesAsync().Result;
         var parts        = message.Text.Split(' ');
         var fromName     = parts[1];
         var fromCurrency = rates.FirstOrDefault(d => d.Text.ToLower().Contains(fromName));
         var toName       = parts[2];
         var toCurrency   = rates.FirstOrDefault(d => d.Text.ToLower().Contains(toName));
         var sum          = Convert.ToDouble(parts[3]);
         if (fromCurrency == null || toCurrency == null)
         {
             client.SendTextMessageAsync(message.Chat, "Одна з вказаної вами валют не знайдено!");
             return;
         }
         var firstSum  = sum * fromCurrency.Rate;
         var secondSum = Math.Round(firstSum / toCurrency.Rate, 2);
         client.SendTextMessageAsync(message.Chat, $"Якщо первести {sum} з {fromCurrency.Text} в {toCurrency.Text}, то буде {secondSum} " +
                                     $"{toCurrency.Text}");
     }
     catch (Exception ex)
     {
         client.SendTextMessageAsync(message.Chat, $"{ex.Message}");
     }
 }
Beispiel #2
0
        public override void Execute(ITelegramBotClient client, Message message)
        {
            var           rates = NBU.GetMainCurrenciesAsync().GetAwaiter().GetResult();
            StringBuilder stb   = new StringBuilder();

            foreach (var item in rates)
            {
                stb.AppendLine($"{item.Text} - {Math.Round(item.Rate, 2)}");
            }
            client.SendTextMessageAsync(message.Chat, stb.ToString());
        }
Beispiel #3
0
        public override void Execute(ITelegramBotClient client, Message message)
        {
            var           rates = NBU.GetRatesAsync().GetAwaiter().GetResult();
            StringBuilder stb   = new StringBuilder();

            foreach (var item in rates.OrderBy(d => d.Text))
            {
                stb.AppendLine($"{item.Text} - {item.Rate}");
            }
            client.SendTextMessageAsync(message.Chat, stb.ToString());
        }
        /// <summary>
        /// Спільний метод тестування різних версій сайтів
        /// </summary>
        /// <param name="stub">заглушка</param>
        private void NBUTestMethod(string stub)
        {
            // act
            UpdateFile(stub);

            // assert
            Assert.AreEqual(StubObjects.Unit, NBU.Unit);
            Assert.AreEqual(StubObjects.Rate, NBU.Rate);

            // виведення результатів
            Debug.WriteLine(NBU.ToString());
        }
 /// <summary>
 /// Оновлення курсу валют через текстовий файл який має кодування із сайту НБУ банку
 /// </summary>
 /// <param name="stub">Заглушка - копія сайту НБУ</param>
 internal static void UpdateFile(string stub)
 {
     try
     {
         // Отримання відповіді, створення потоку, створення читача і записника
         using (FileStream stream = new FileStream(stub, FileMode.Open, FileAccess.Read))
         {
             NBU.GetData(stream, Encoding.GetEncoding(stub));
         }
     }
     catch (Exception ex)
     {
         Debug.WriteLine(ex.Message);
     }
 }
        public override void Execute(ITelegramBotClient client, Message message)
        {
            var request = message.Text.Split(Exts.Delimiters);

            if (request.Length <= 1)
            {
                client.SendTextMessageAsync(message.Chat, $"Будь ласка впишіть дату коректно (/getRateByDate.{DateTime.Now.ToString("yyyyMMdd")})!");
                return;
            }
            var           date  = message.Text.Split(Exts.Delimiters)[1];
            var           rates = NBU.GetRatesByDateAsync(date).GetAwaiter().GetResult();
            StringBuilder src   = new StringBuilder();

            foreach (var item in rates.OrderBy(d => d.Text))
            {
                src.AppendLine($"{item.Text} - {item.Rate}");
            }
            client.SendTextMessageAsync(message.Chat, src.ToString());
        }
Beispiel #7
0
        public override void Execute(ITelegramBotClient client, Message message)
        {
            try
            {
                var rates = NBU.GetRatesAsync().Result;
                var parts = message.Text.Split(' ');
                if (parts.Length <= 1)
                {
                    client.SendTextMessageAsync(message.Chat, "Будь ласка впишіть валюту коректно!");
                    return;
                }
                var currency = rates.FirstOrDefault(d => d.Text.ToLower().Contains(parts[1]));

                client.SendTextMessageAsync(message.Chat, $"Ваш запит на {currency.Text} = {currency.Rate * Convert.ToInt64(parts[2])} гривень");
            }
            catch (Exception ex)
            {
                client.SendTextMessageAsync(message.Chat, $"{ex.Message}");
            }
        }