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}"); } }
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()); }
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()); }
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}"); } }