using System.Collections.Generic;
using System.IO;
using System.Windows;
using System.Windows.Controls;
namespace KonwerterWalut
{
public partial class MainWindow : Window
{
private Dictionary<string, decimal> rates = new Dictionary<string, decimal>()
{
{ "PLN", 1.0m },
{ "USD", 4.02m },
{ "EUR", 4.32m },
{ "RUB", 0.045m },
{ "BYN", 1.25m },
{ "CNY", 0.56m }
};
public MainWindow()
{
InitializeComponent();
LoadRatesFromFile();
CbFrom.ItemsSource = rates.Keys;
CbTo.ItemsSource = rates.Keys;
CbFrom.SelectedItem = "PLN";
CbTo.SelectedItem = "USD";
}
private void LoadRatesFromFile()
{
string filePath = "rates.txt";
if (!File.Exists(filePath))
{
File.WriteAllLines(filePath, new string[]
{
"PLN;1.0",
"USD;4.02",
"EUR;4.32",
"RUB;0.045",
"BYN;1.25",
"CNY;0.56"
});
}
if (File.Exists(filePath))
{
var lines = File.ReadAllLines(filePath);
foreach (var line in lines)
{
var parts = line.Split(';');
if (parts.Length == 2 && decimal.TryParse(parts[1], out decimal val))
{
rates[parts[0]] = val;
}
}
}
}
private void Calculate(object sender, RoutedEventArgs e)
{
if (TxtResult == null || CbFrom.SelectedItem == null || CbTo.SelectedItem == null) return;
if (decimal.TryParse(TxtAmount.Text, out decimal amount) && amount >= 0)
{
string from = CbFrom.SelectedItem.ToString();
string to = CbTo.SelectedItem.ToString();
decimal amountInPln = amount * rates[from];
decimal result = amountInPln / rates[to];
TxtResult.Text = $"{result:F2} {to}";
}
else
{
TxtResult.Text = "Podaj liczbę > 0";
}
}
}
}