diff --git a/CurrencyConvert.csproj.user b/CurrencyConvert.csproj.user index 7814ea2..7651ebc 100644 --- a/CurrencyConvert.csproj.user +++ b/CurrencyConvert.csproj.user @@ -1,8 +1,8 @@  - - - Form - - - + + + Form + + + \ No newline at end of file diff --git a/Form1.cs b/Form1.cs deleted file mode 100644 index 9be3c23..0000000 --- a/Form1.cs +++ /dev/null @@ -1,133 +0,0 @@ -using Newtonsoft.Json; -using System.Collections.Generic; - -namespace CurrencyConvert -{ - public partial class Form1 : Form - { - - private readonly HashSet supportedCurrencies = new HashSet - { - "AUD", "BGN", "BRL", "CAD", "CHF", "CNY", "CZK", "DKK", - "EUR", "GBP", "HKD", "HUF", "IDR", "ILS", "INR", "ISK", - "JPY", "KRW", "MXN", "MYR", "NOK", "NZD", "PHP", "PLN", - "RON", "SEK", "SGD", "THB", "TRY", "USD", "ZAR" - }; - - public Form1() - { - InitializeComponent(); - - - comboBox1.Items.Clear(); - comboBox2.Items.Clear(); - foreach (string currency in supportedCurrencies) - { - comboBox1.Items.Add(currency); - comboBox2.Items.Add(currency); - } - - comboBox1.SelectedIndex = comboBox1.Items.IndexOf("EUR"); - comboBox2.SelectedIndex = comboBox2.Items.IndexOf("USD"); - - - label4.AutoSize = true; - label4.Font = new Font(label4.Font.FontFamily, 12, FontStyle.Bold); - } - - private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) - { - - } - - private void textBox1_KeyPress(object sender, KeyPressEventArgs e) - { - if (!char.IsDigit(e.KeyChar) && e.KeyChar != ',' && e.KeyChar != '.' && e.KeyChar != (char)Keys.Back) - { - e.Handled = true; - } - } - - private async void button1_Click(object sender, EventArgs e) - { - try - { - - label4.Text = "Berechne..."; - button1.Enabled = false; - - if (string.IsNullOrWhiteSpace(textBox1.Text)) - { - MessageBox.Show("Bitte geben Sie einen Betrag ein."); - return; - } - - - string amount = textBox1.Text.Replace(',', '.'); - if (!double.TryParse(amount, System.Globalization.NumberStyles.Any, System.Globalization.CultureInfo.InvariantCulture, out double menge)) - { - MessageBox.Show("Bitte geben Sie einen gültigen Betrag ein."); - return; - } - - if (comboBox1.SelectedItem == null || comboBox2.SelectedItem == null) - { - MessageBox.Show("Bitte wählen Sie beide Währungen aus."); - return; - } - - string von = comboBox1.SelectedItem.ToString().Trim().ToUpper(); - string zu = comboBox2.SelectedItem.ToString().Trim().ToUpper(); - - if (!supportedCurrencies.Contains(von) || !supportedCurrencies.Contains(zu)) - { - MessageBox.Show($"Eine oder beide Währungen werden nicht unterstützt.\nUnterstützte Währungen: {string.Join(", ", supportedCurrencies)}"); - return; - } - - - string url = $"https://api.frankfurter.app/latest?amount={amount}&from={von}&to={zu}"; - - using (HttpClient client = new HttpClient()) - { - var response = await client.GetAsync(url); - string json = await response.Content.ReadAsStringAsync(); - - if (!response.IsSuccessStatusCode) - { - MessageBox.Show("Fehler beim Abrufen der Wechselkurse."); - return; - } - - var data = JsonConvert.DeserializeObject(json); - - if (data?.rates == null || !data.rates.ContainsKey(zu)) - { - MessageBox.Show("Fehler beim Abrufen der Wechselkurse."); - return; - } - - double ergebnis = data.rates[zu]; - label4.Text = $"{menge} {von} = {ergebnis:0.00} {zu}"; - } - } - catch (Exception) - { - MessageBox.Show("Ein Fehler ist aufgetreten. Bitte versuchen Sie es später erneut."); - } - finally - { - button1.Enabled = true; - } - } - } - - public class FrankfurterResponse - { - public double amount { get; set; } - public string base_currency { get; set; } - public string date { get; set; } - public Dictionary rates { get; set; } - } -} - diff --git a/Form1.Designer.cs b/MoneyConverter.Designer.cs similarity index 90% rename from Form1.Designer.cs rename to MoneyConverter.Designer.cs index 1d55abd..a234c9f 100644 --- a/Form1.Designer.cs +++ b/MoneyConverter.Designer.cs @@ -1,6 +1,6 @@ namespace CurrencyConvert { - partial class Form1 + partial class MoneyConverter { private System.ComponentModel.IContainer components = null; @@ -56,6 +56,7 @@ // label1 // label1.AutoSize = true; + label1.BackColor = Color.Transparent; label1.Location = new Point(184, 34); label1.Name = "label1"; label1.Size = new Size(97, 20); @@ -65,6 +66,7 @@ // label2 // label2.AutoSize = true; + label2.BackColor = Color.Transparent; label2.Location = new Point(184, 82); label2.Name = "label2"; label2.Size = new Size(89, 20); @@ -82,11 +84,13 @@ // label3 // label3.AutoSize = true; + label3.BackColor = Color.Transparent; label3.Location = new Point(184, 132); label3.Name = "label3"; label3.Size = new Size(144, 20); label3.TabIndex = 5; label3.Text = "Menge der Währung"; + label3.Click += label3_Click; // // button1 // @@ -104,17 +108,20 @@ // label4 // label4.AutoSize = true; + label4.BackColor = Color.Transparent; label4.Location = new Point(28, 263); label4.Name = "label4"; label4.Size = new Size(66, 20); label4.TabIndex = 7; label4.Text = "Ergebnis"; // - // Form1 + // MoneyConverter // AutoScaleDimensions = new SizeF(8F, 20F); AutoScaleMode = AutoScaleMode.Font; - ClientSize = new Size(709, 496); + BackColor = SystemColors.HighlightText; + BackgroundImage = Properties.Resources.Background; + ClientSize = new Size(366, 328); Controls.Add(label4); Controls.Add(button1); Controls.Add(label3); @@ -123,8 +130,9 @@ Controls.Add(label1); Controls.Add(comboBox2); Controls.Add(comboBox1); - Name = "Form1"; - Text = "Form1"; + Name = "MoneyConverter"; + Text = "MoneyConverter"; + Load += Form1_Load; ResumeLayout(false); PerformLayout(); } diff --git a/MoneyConverter.cs b/MoneyConverter.cs new file mode 100644 index 0000000..a8a25bd --- /dev/null +++ b/MoneyConverter.cs @@ -0,0 +1,152 @@ +using Newtonsoft.Json; +using System.Collections.Generic; + +namespace CurrencyConvert +{ + public partial class MoneyConverter : Form + { + + private readonly string[] supportedCurrencies = new string[] + { + "AUD", "BGN", "BRL", "CAD", "CHF", "CNY", "CZK", "DKK", + "EUR", "GBP", "HKD", "HUF", "IDR", "ILS", "INR", "ISK", + "JPY", "KRW", "MXN", "MYR", "NOK", "NZD", "PHP", "PLN", + "RON", "SEK", "SGD", "THB", "TRY", "USD", "ZAR" + }; + + public MoneyConverter() + { + InitializeComponent(); + + + comboBox1.Items.Clear(); + comboBox2.Items.Clear(); + foreach (string currency in supportedCurrencies) + { + comboBox1.Items.Add(currency); + comboBox2.Items.Add(currency); + } + + comboBox1.SelectedIndex = comboBox1.Items.IndexOf("EUR"); + comboBox2.SelectedIndex = comboBox2.Items.IndexOf("USD"); + + + label4.AutoSize = true; + label4.Font = new Font(label4.Font.FontFamily, 12, FontStyle.Bold); + } + + private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) + { + + } + + private void textBox1_KeyPress(object sender, KeyPressEventArgs e) + { + if (!char.IsDigit(e.KeyChar) && e.KeyChar != ',' && e.KeyChar != '.' && e.KeyChar != (char)Keys.Back) + { + e.Handled = true; + } + } + + private async void button1_Click(object sender, EventArgs e) + { + + label4.Text = "Berechne..."; + button1.Enabled = false; + + + if (string.IsNullOrWhiteSpace(textBox1.Text)) + { + MessageBox.Show("Bitte geben Sie einen Betrag ein."); + button1.Enabled = true; + return; + } + + + string amountText = textBox1.Text.Replace(',', '.'); + double amount; + bool isNumber = double.TryParse(amountText, System.Globalization.NumberStyles.Any, System.Globalization.CultureInfo.InvariantCulture, out amount); + if (!isNumber) + { + MessageBox.Show("Bitte geben Sie einen gültigen Betrag ein."); + button1.Enabled = true; + return; + } + + + if (comboBox1.SelectedItem == null || comboBox2.SelectedItem == null) + { + MessageBox.Show("Bitte wählen Sie beide Währungen aus."); + button1.Enabled = true; + return; + } + + + string fromCurrency = comboBox1.SelectedItem.ToString().Trim().ToUpper(); + string toCurrency = comboBox2.SelectedItem.ToString().Trim().ToUpper(); + + + bool fromSupported = false; + bool toSupported = false; + foreach (string currency in supportedCurrencies) + { + if (currency == fromCurrency) fromSupported = true; + if (currency == toCurrency) toSupported = true; + } + if (!fromSupported || !toSupported) + { + MessageBox.Show("Eine oder beide Währungen werden nicht unterstützt."); + button1.Enabled = true; + return; + } + + + string url = "https://api.frankfurter.app/latest?amount=" + amountText + "&from=" + fromCurrency + "&to=" + toCurrency; + + + HttpClient client = new HttpClient(); + HttpResponseMessage response = await client.GetAsync(url); + string json = await response.Content.ReadAsStringAsync(); + + if (!response.IsSuccessStatusCode) + { + MessageBox.Show("Fehler beim Abrufen der Wechselkurse."); + button1.Enabled = true; + return; + } + + FrankfurterResponse data = JsonConvert.DeserializeObject(json); + + if (data == null || data.rates == null || !data.rates.ContainsKey(toCurrency)) + { + MessageBox.Show("Fehler beim Abrufen der Wechselkurse."); + button1.Enabled = true; + return; + } + + double result = data.rates[toCurrency]; + label4.Text = amount + " " + fromCurrency + " = " + result.ToString("0.00") + " " + toCurrency; + + button1.Enabled = true; + } + + private void Form1_Load(object sender, EventArgs e) + { + + } + + private void label3_Click(object sender, EventArgs e) + { + + } + } + + public class FrankfurterResponse + { + public double amount { get; set; } + public string base_currency { get; set; } + public string date { get; set; } + public Dictionary rates { get; set; } + } +} + diff --git a/Form1.resx b/MoneyConverter.resx similarity index 100% rename from Form1.resx rename to MoneyConverter.resx diff --git a/Program.cs b/Program.cs index 00a130b..e3b5de3 100644 --- a/Program.cs +++ b/Program.cs @@ -11,7 +11,7 @@ namespace CurrencyConvert // To customize application configuration such as set high DPI settings or default font, // see https://aka.ms/applicationconfiguration. ApplicationConfiguration.Initialize(); - Application.Run(new Form1()); + Application.Run(new MoneyConverter()); } } } \ No newline at end of file diff --git a/Properties/Resources.Designer.cs b/Properties/Resources.Designer.cs index feec1de..9f83526 100644 --- a/Properties/Resources.Designer.cs +++ b/Properties/Resources.Designer.cs @@ -60,6 +60,16 @@ namespace CurrencyConvert.Properties { } } + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Background { + get { + object obj = ResourceManager.GetObject("Background", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// diff --git a/Properties/Resources.resx b/Properties/Resources.resx index a26584f..2eb6aba 100644 --- a/Properties/Resources.resx +++ b/Properties/Resources.resx @@ -118,10 +118,13 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - ..\Resources\Euro.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\Euro1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Euro.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Background.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + \ No newline at end of file diff --git a/Resources/Background.jpg b/Resources/Background.jpg new file mode 100644 index 0000000..ce7ada8 Binary files /dev/null and b/Resources/Background.jpg differ diff --git a/bin/Debug/net8.0-windows/CurrencyConvert.dll b/bin/Debug/net8.0-windows/CurrencyConvert.dll index 4e00261..23960a7 100644 Binary files a/bin/Debug/net8.0-windows/CurrencyConvert.dll and b/bin/Debug/net8.0-windows/CurrencyConvert.dll differ diff --git a/bin/Debug/net8.0-windows/CurrencyConvert.exe b/bin/Debug/net8.0-windows/CurrencyConvert.exe index 78e7267..a912f38 100644 Binary files a/bin/Debug/net8.0-windows/CurrencyConvert.exe and b/bin/Debug/net8.0-windows/CurrencyConvert.exe differ diff --git a/bin/Debug/net8.0-windows/CurrencyConvert.pdb b/bin/Debug/net8.0-windows/CurrencyConvert.pdb index 525e0de..3af7565 100644 Binary files a/bin/Debug/net8.0-windows/CurrencyConvert.pdb and b/bin/Debug/net8.0-windows/CurrencyConvert.pdb differ diff --git a/obj/Debug/net8.0-windows/CurrencyConvert.AssemblyInfo.cs b/obj/Debug/net8.0-windows/CurrencyConvert.AssemblyInfo.cs index 4f86083..ae0edd5 100644 --- a/obj/Debug/net8.0-windows/CurrencyConvert.AssemblyInfo.cs +++ b/obj/Debug/net8.0-windows/CurrencyConvert.AssemblyInfo.cs @@ -14,7 +14,7 @@ using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("CurrencyConvert")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+49813f523c3f34dcd8f71e2715720478dba4336d")] [assembly: System.Reflection.AssemblyProductAttribute("CurrencyConvert")] [assembly: System.Reflection.AssemblyTitleAttribute("CurrencyConvert")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] diff --git a/obj/Debug/net8.0-windows/CurrencyConvert.AssemblyInfoInputs.cache b/obj/Debug/net8.0-windows/CurrencyConvert.AssemblyInfoInputs.cache index 67aa13b..996c2dc 100644 --- a/obj/Debug/net8.0-windows/CurrencyConvert.AssemblyInfoInputs.cache +++ b/obj/Debug/net8.0-windows/CurrencyConvert.AssemblyInfoInputs.cache @@ -1 +1 @@ -861cff0492995bfdf65c6a8287334b22d4a50ab65208d23816ade7ac77479a9c +5a969a5d6ad40d34e0088ed564d4ce93fdbd68bcc1aee708c09cc350f732b47d diff --git a/obj/Debug/net8.0-windows/CurrencyConvert.Form1.resources b/obj/Debug/net8.0-windows/CurrencyConvert.MoneyConverter.resources similarity index 100% rename from obj/Debug/net8.0-windows/CurrencyConvert.Form1.resources rename to obj/Debug/net8.0-windows/CurrencyConvert.MoneyConverter.resources diff --git a/obj/Debug/net8.0-windows/CurrencyConvert.Properties.Resources.resources b/obj/Debug/net8.0-windows/CurrencyConvert.Properties.Resources.resources index e72efc9..665257c 100644 Binary files a/obj/Debug/net8.0-windows/CurrencyConvert.Properties.Resources.resources and b/obj/Debug/net8.0-windows/CurrencyConvert.Properties.Resources.resources differ diff --git a/obj/Debug/net8.0-windows/CurrencyConvert.csproj.CoreCompileInputs.cache b/obj/Debug/net8.0-windows/CurrencyConvert.csproj.CoreCompileInputs.cache index add83be..25118f7 100644 --- a/obj/Debug/net8.0-windows/CurrencyConvert.csproj.CoreCompileInputs.cache +++ b/obj/Debug/net8.0-windows/CurrencyConvert.csproj.CoreCompileInputs.cache @@ -1 +1 @@ -4b3f8ed66ef892d49dcd4ec591dd76964fb33b7849e8269c41fd33a533999b3b +d94f5a7fb60fe6f3c14e30e5724ba7ab2500f212694980dd3ec08fc32bf234f4 diff --git a/obj/Debug/net8.0-windows/CurrencyConvert.csproj.FileListAbsolute.txt b/obj/Debug/net8.0-windows/CurrencyConvert.csproj.FileListAbsolute.txt index f28d97c..d5d8ad3 100644 --- a/obj/Debug/net8.0-windows/CurrencyConvert.csproj.FileListAbsolute.txt +++ b/obj/Debug/net8.0-windows/CurrencyConvert.csproj.FileListAbsolute.txt @@ -3,7 +3,6 @@ C:\Users\bib\source\repos\CurrencyConvert\bin\Debug\net8.0-windows\CurrencyConve C:\Users\bib\source\repos\CurrencyConvert\bin\Debug\net8.0-windows\CurrencyConvert.runtimeconfig.json C:\Users\bib\source\repos\CurrencyConvert\bin\Debug\net8.0-windows\CurrencyConvert.dll C:\Users\bib\source\repos\CurrencyConvert\bin\Debug\net8.0-windows\CurrencyConvert.pdb -C:\Users\bib\source\repos\CurrencyConvert\obj\Debug\net8.0-windows\CurrencyConvert.Form1.resources C:\Users\bib\source\repos\CurrencyConvert\obj\Debug\net8.0-windows\CurrencyConvert.csproj.GenerateResource.cache C:\Users\bib\source\repos\CurrencyConvert\obj\Debug\net8.0-windows\CurrencyConvert.GeneratedMSBuildEditorConfig.editorconfig C:\Users\bib\source\repos\CurrencyConvert\obj\Debug\net8.0-windows\CurrencyConvert.AssemblyInfoInputs.cache @@ -18,3 +17,4 @@ C:\Users\bib\source\repos\CurrencyConvert\obj\Debug\net8.0-windows\CurrencyConve C:\Users\bib\source\repos\CurrencyConvert\obj\Debug\net8.0-windows\CurrencyConvert.csproj.AssemblyReference.cache C:\Users\bib\source\repos\CurrencyConvert\bin\Debug\net8.0-windows\Newtonsoft.Json.dll C:\Users\bib\source\repos\CurrencyConvert\obj\Debug\net8.0-windows\Currency.DEA7AA0F.Up2Date +C:\Users\bib\source\repos\CurrencyConvert\obj\Debug\net8.0-windows\CurrencyConvert.MoneyConverter.resources diff --git a/obj/Debug/net8.0-windows/CurrencyConvert.csproj.GenerateResource.cache b/obj/Debug/net8.0-windows/CurrencyConvert.csproj.GenerateResource.cache index ed0999e..b087d38 100644 Binary files a/obj/Debug/net8.0-windows/CurrencyConvert.csproj.GenerateResource.cache and b/obj/Debug/net8.0-windows/CurrencyConvert.csproj.GenerateResource.cache differ diff --git a/obj/Debug/net8.0-windows/CurrencyConvert.dll b/obj/Debug/net8.0-windows/CurrencyConvert.dll index 4e00261..23960a7 100644 Binary files a/obj/Debug/net8.0-windows/CurrencyConvert.dll and b/obj/Debug/net8.0-windows/CurrencyConvert.dll differ diff --git a/obj/Debug/net8.0-windows/CurrencyConvert.pdb b/obj/Debug/net8.0-windows/CurrencyConvert.pdb index 525e0de..3af7565 100644 Binary files a/obj/Debug/net8.0-windows/CurrencyConvert.pdb and b/obj/Debug/net8.0-windows/CurrencyConvert.pdb differ diff --git a/obj/Debug/net8.0-windows/apphost.exe b/obj/Debug/net8.0-windows/apphost.exe index 78e7267..a912f38 100644 Binary files a/obj/Debug/net8.0-windows/apphost.exe and b/obj/Debug/net8.0-windows/apphost.exe differ diff --git a/obj/Debug/net8.0-windows/ref/CurrencyConvert.dll b/obj/Debug/net8.0-windows/ref/CurrencyConvert.dll index b8523b2..10e01ec 100644 Binary files a/obj/Debug/net8.0-windows/ref/CurrencyConvert.dll and b/obj/Debug/net8.0-windows/ref/CurrencyConvert.dll differ diff --git a/obj/Debug/net8.0-windows/refint/CurrencyConvert.dll b/obj/Debug/net8.0-windows/refint/CurrencyConvert.dll index b8523b2..10e01ec 100644 Binary files a/obj/Debug/net8.0-windows/refint/CurrencyConvert.dll and b/obj/Debug/net8.0-windows/refint/CurrencyConvert.dll differ