//WINFORMS - Formulář pro přidávání záznamů
using CustomerEvidenceApp.Entities; // Import entit pro práci s databází
namespace CustomerEvidenceApp
{
public partial class CustomerEditForm : Form
{
public CustomerEditForm()
{
InitializeComponent(); // Inicializace komponent formuláře
}
private void Form1_Load(object sender, EventArgs e)
{
// Naplnění ComboBoxu pro pohlaví (Gender)
List<KeyValuePair<string, string>> genders = new List<KeyValuePair<string, string>>();
var maleGender = new KeyValuePair<string, string>("Muž", "male");
var femaleGender = new KeyValuePair<string, string>("Žena", "female");
genders.Add(maleGender);
genders.Add(femaleGender);
comboBox_Gender.DataSource = genders; // Nastavení datového zdroje
ComboBoxu comboBox_Gender.DisplayMember = "Key"; // Zobrazený text
comboBox_Gender.ValueMember = "Value"; // Hodnota pro zpracování
}
private void button_Save_Click(object sender, EventArgs e)
{
// Ověření vstupních dat pomocí Validating eventů
if (!this.ValidateChildren())
{
return; // Pokud validace selže, ukončíme metodu
}
// Alternativní ověření pomocí errorProvideru
// Vyžaduje implementaci metody ReallyHasErrors()
if (errorProvider_Validation.ReallyHasErrors())
{
return; // Pokud jsou chyby, ukončíme metodu
}
// Vytvoření nové instance zákazníka
Customer customer = new Customer();
customer.FullName = textBox_FullName.Text; // Přiřazení jména
customer.Birthday = dateTimePicker_Birthday.Value; // Přiřazení data narození
customer.IQ = Convert.ToInt32(numericUpDown_IQ.Value); // Přiřazení IQ
// Přiřazení pohlaví, pokud je vybráno
if (comboBox_Gender.SelectedValue is not null)
{
customer.Gender = comboBox_Gender.SelectedValue.ToString()!;
}
customer.GdprAgreement = checkBox_GdprAgreement.Checked; // Přiřazení souhlasu s GDPR
// Uložení zákazníka do databáze
ApplicationDbContext dbContext = new ApplicationDbContext();
// Vytvoření kontextu databáze
dbContext.Customers.Add(customer); /
/ Přidání zákazníka do DbSetu
dbContext.SaveChanges();
// Uložení změn do databáze
this.DialogResult = DialogResult.OK; // Nastavení výsledku dialogu na OK
}
private void dateTimePicker_Birthday_Validating(object sender, System.ComponentModel.CancelEventArgs e)
{
DateTime date = dateTimePicker_Birthday.Value;
if (DateOnly.FromDateTime(date) >= DateOnly.FromDateTime(DateTime.Now))
{
// Pokud je datum narození v budoucnosti, zobrazíme chybu errorProvider_Validation.SetError(dateTimePicker_Birthday, "Datum narození nesmí být v budoucnosti.");
}
else
{
// Pokud je datum v pořádku, odstraníme chybu errorProvider_Validation.SetError(dateTimePicker_Birthday, null); }
}
}
}