FahrzeugVerwaltung/FahrzeugProjekt/FahrzeugEintragenWindow.xaml.cs
2025-09-05 16:24:44 +02:00

119 lines
3.5 KiB
C#

using Microsoft.EntityFrameworkCore;
using System.Windows;
using System.Windows.Controls;
namespace FahrzeugProjekt
{
public partial class FahrzeugEintragenWindow : Window
{
private FahrzeugProjektKontext Kontext;
bool idk;
public MainWindow main { get; set; }
public FahrzeugEintragenWindow(FahrzeugProjektKontext dbKontext)
{
InitializeComponent();
Kontext = dbKontext;
DatenLaden();
}
private void DatenLaden()
{
List<Modell> alleModelle = Kontext.Modelle.ToList();
cmbModell.ItemsSource = alleModelle;
cmbModell.DisplayMemberPath = "Modellname";
}
private void Speichern(object sender, RoutedEventArgs e)
{
idk = EingabenValidieren();
if (idk == false)
{
return;
}
Modell ausgewähltesModell = cmbModell.SelectedItem as Modell;
Fahrzeug neuesFahrzeug = new Fahrzeug
{
ModellID = ausgewähltesModell.ModellID,
Getriebe = ((ComboBoxItem)cmbGetriebe.SelectedItem).Content.ToString(),
Kraftstoff = ((ComboBoxItem)cmbKraftstoff.SelectedItem).Content.ToString(),
Baujahr = int.Parse(txtBaujahr.Text),
Farbe = txtFarbe.Text.Trim(),
Kilometerstand = int.Parse(txtKilometer.Text),
Beschreibung = txtBeschreibung.Text.Trim()
};
Kontext.Fahrzeuge.Add(neuesFahrzeug);
Kontext.SaveChanges();
MessageBox.Show("Fahrzeug erfolgreich gespeichert!");
this.Close();
main.Show();
}
private bool EingabenValidieren()
{
if (cmbModell.SelectedItem == null)
{
MessageBox.Show("Bitte wählen Sie ein Modell aus!");
return false;
}
if (cmbGetriebe.SelectedItem == null)
{
MessageBox.Show("Bitte wählen Sie ein Getriebe aus!");
return false;
}
if (cmbKraftstoff.SelectedItem == null)
{
MessageBox.Show("Bitte wählen Sie einen Kraftstoff aus!");
return false;
}
try
{
int baujahr = Convert.ToInt32(txtBaujahr.Text);
if (baujahr < 1900)
{
MessageBox.Show("Bitte geben Sie ein gültiges Baujahr ein!");
return false;
}
}
catch
{
MessageBox.Show("Bitte geben Sie ein gültiges Baujahr ein!");
return false;
}
if (string.IsNullOrWhiteSpace(txtFarbe.Text))
{
MessageBox.Show("Bitte geben Sie eine Farbe ein!");
return false;
}
try
{
int km = Convert.ToInt32(txtKilometer.Text);
if (km < 0)
{
MessageBox.Show("Bitte geben Sie einen gültigen Kilometerstand ein!");
return false;
}
}
catch
{
MessageBox.Show("Bitte geben Sie einen gültigen Kilometerstand ein!");
return false;
}
return true;
}
private void Abbrechen(object sender, RoutedEventArgs e)
{
this.Close();
main.Show();
}
}
}