Diff

Created Diff never expires
11 removals
45 lines
45 additions
78 lines
using System;
using System;
using System.Net.Http;
using System.Net.Http;
using System.Threading.Tasks;
using System.Threading.Tasks;


namespace CurrencyExchange
namespace CurrencyExchange
{
{
class Program
class Program
{
{
static void Main(string[] args)
static void Main(string[] args)
{
{
// Get the amount to convert and the currency codes
Console.WriteLine("Enter the amount you want to convert: ");
Console.WriteLine("Enter the amount you want to convert: ");
string amountString = Console.ReadLine();
double amount = GetInputAmount();
double amount = double.Parse(amountString);
string fromCurrency = GetCurrencyCode("FROM");
string toCurrency = GetCurrencyCode("TO");


Console.WriteLine("Enter the currency code of the currency you want to convert FROM: ");
// Get the exchange rate and convert the amount
string fromCurrency = Console.ReadLine();

Console.WriteLine("Enter the currency code of the currency you want to convert TO: ");
string toCurrency = Console.ReadLine();

double exchangeRate = GetExchangeRate(fromCurrency, toCurrency).Result;
double exchangeRate = GetExchangeRate(fromCurrency, toCurrency).Result;
double convertedAmount = exchangeRate * amount;
double convertedAmount = exchangeRate * amount;


Console.WriteLine($"{amount} {fromCurrency} is equal to {convertedAmount} {toCurrency}");
Console.WriteLine($"{amount} {fromCurrency} is equal to {convertedAmount} {toCurrency}");
}
}


static async Task<double> GetExchangeRate(string fromCurrency, string toCurrency)
static async Task<double> GetExchangeRate(string fromCurrency, string toCurrency)
{
{
string apiKey = "your-api-key-here";
string apiKey = "your-api-key-here";
string apiUrl = $"https://api.exchangerate-api.com/v4/latest/{fromCurrency}";
string apiUrl = $"https://api.exchangerate-api.com/v4/latest/{fromCurrency}";


HttpClient client = new HttpClient();
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", apiKey);
client.DefaultRequestHeaders.Add("Authorization", apiKey);


HttpResponseMessage response = await client.GetAsync(apiUrl);
HttpResponseMessage response = await client.GetAsync(apiUrl);
string result = await response.Content.ReadAsStringAsync();
string result = await response.Content.ReadAsStringAsync();


// Parse the exchange rate from the JSON response
// Parse the exchange rate from the JSON response
dynamic exchangeRates = JsonConvert.DeserializeObject(result);
dynamic exchangeRates = JsonConvert.DeserializeObject(result);
double exchangeRate = exchangeRates.rates[toCurrency];
double exchangeRate = exchangeRates.rates[toCurrency];


return exchangeRate;
return exchangeRate;
}

static double GetInputAmount()
{
double amount = 0;
bool validInput = false;

while (!validInput)
{
string amountString = Console.ReadLine();
if (double.TryParse(amountString, out amount))
{
validInput = true;
}
else
{
Console.WriteLine("Invalid input. Please enter a valid amount: ");
}
}

return amount;
}

static string GetCurrencyCode(string currencyType)
{
Console.WriteLine($"Enter the currency code of the currency you want to convert {currencyType}: ");
string currencyCode = Console.ReadLine().ToUpper();

// Validate the currency code
if (currencyCode.Length != 3)
{
Console.WriteLine("Invalid currency code. Please enter a valid 3-letter currency code: ");
return GetCurrencyCode(currencyType);
}

return currencyCode;
}
}
}
}
}
}