247 lines
7.7 KiB
C#
247 lines
7.7 KiB
C#
using DatenDB;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Runtime.CompilerServices;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
|
|
namespace Deckungsbeitrag.AA_Forms
|
|
{
|
|
public partial class FormNeuerBenutzer : Form
|
|
{
|
|
private Meldungen meldung = new Meldungen();
|
|
bool[] tosave = { false, false, false };
|
|
public FormNeuerBenutzer()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
private void FormNeuerBenutzer_Load(object sender, EventArgs e)
|
|
{
|
|
this.comboBoxRolle.DataSource = Enum.GetValues(typeof(BenutzerRolle));
|
|
this.comboBoxRolle.SelectedIndex = -1;
|
|
this.dateTimePickerFSGueltig.Value = DateTime.Today;
|
|
}
|
|
private void buttonSpeichern_Click(object sender, EventArgs e)
|
|
{
|
|
Benutzer ben = new Benutzer();
|
|
ben.Aktiv = true;
|
|
ben.Vorname = textBoxVorname.Text;
|
|
ben.Nachname = textBoxNachname.Text;
|
|
ben.BenutzerName = textBoxBenutzername.Text;
|
|
ben.Rolle = (BenutzerRolle)comboBoxRolle.SelectedValue;
|
|
if(ben.Rolle == BenutzerRolle.Fahrer)
|
|
{
|
|
ben.Schein = int.Parse(textBoxFuehrerschein.Text);
|
|
ben.GueltigBis = dateTimePickerFSGueltig.Value;
|
|
}
|
|
ben.BenutzerID = null;
|
|
|
|
if (ben.Save() != 1) meldung.Speicherfehler();
|
|
else
|
|
{
|
|
string s = $"Benutzer {ben.BenutzerName} erfolgreich gespeichert.";
|
|
meldung.SpeichernErfolgreich(s);
|
|
this.DialogResult = DialogResult.OK;
|
|
this.Close();
|
|
}
|
|
}
|
|
private void buttonAbbrechen_Click(object sender, EventArgs e)
|
|
{
|
|
this.DialogResult = DialogResult.Cancel;
|
|
this.Close();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Wenn SelectedValueChanged wird auch tosave geändert. Validierung wird auch hier ausgelöst.
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void comboBoxRolle_SelectedValueChanged(object sender, EventArgs e)
|
|
{
|
|
if (this.comboBoxRolle.SelectedValue != null)
|
|
{
|
|
if ((BenutzerRolle)this.comboBoxRolle.SelectedValue == BenutzerRolle.Fahrer)
|
|
{
|
|
this.Height = 450;
|
|
this.groupBoxFuehrerschein.Enabled = this.groupBoxFuehrerschein.Visible = true;
|
|
this.textBoxFuehrerschein.Focus();
|
|
tosave[2] = false;
|
|
}
|
|
else tosave[2] = true;
|
|
|
|
CancelEventArgs ce = new CancelEventArgs();
|
|
comboBoxRolle_Validating(comboBoxRolle, ce);
|
|
}
|
|
else tosave[2] = false;
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// Speicherbuttonstatus Regelung tosave werdem geprüft.
|
|
/// </summary>
|
|
private void Enable_Speichern()
|
|
{
|
|
if (!Array.TrueForAll(tosave, b => b == true))
|
|
{
|
|
this.buttonSpeichern.Enabled = false;
|
|
this.buttonSpeichern.BackColor = Color.Gray;
|
|
}
|
|
else
|
|
{
|
|
this.buttonSpeichern.Enabled = true;
|
|
this.buttonSpeichern.BackColor = Color.FromArgb(0, 192, 0);
|
|
this.buttonSpeichern.Focus();
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// TextBox Benutzername validieren und Speicherbuttonstatus regeln.
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void textBoxBenutzername_Validating(object sender, CancelEventArgs e)
|
|
{
|
|
if (textBoxBenutzername.Text == string.Empty)
|
|
{
|
|
string s = $"Der Benutzername ist verpflichtend.";
|
|
meldung.EingabeFehltoderFalsch(s);
|
|
e.Cancel = true;
|
|
textBoxBenutzername.Focus();
|
|
textBoxBenutzername.BackColor = Color.Red;
|
|
}
|
|
else textBoxBenutzername.BackColor = SystemColors.Window;
|
|
|
|
tosave[0] = !e.Cancel;
|
|
Enable_Speichern();
|
|
}
|
|
|
|
/// <summary>
|
|
/// ComboBox BenutzerRolle validieren und Speicherbuttonstatus regeln.
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void comboBoxRolle_Validating(object sender, CancelEventArgs e)
|
|
{
|
|
if (string.IsNullOrWhiteSpace(comboBoxRolle.Text))
|
|
{
|
|
string s = $"Die BenutzerRolle muss ausgewählt sein.";
|
|
meldung.EingabeFehltoderFalsch(s);
|
|
e.Cancel = true;
|
|
comboBoxRolle.Focus();
|
|
comboBoxRolle.BackColor = Color.Red;
|
|
}
|
|
else
|
|
{
|
|
comboBoxRolle.BackColor = SystemColors.Window;
|
|
if ((BenutzerRolle)comboBoxRolle.SelectedValue == BenutzerRolle.Fahrer) tosave[2] = false;
|
|
else tosave[2] = true;
|
|
}
|
|
|
|
tosave[1] = !e.Cancel;
|
|
Enable_Speichern();
|
|
}
|
|
|
|
/// <summary>
|
|
/// GroupBox Führerschein validieren wenn sichtbar. Speicherbuttonstatus regeln wenn sichtbar.
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void groupBoxFuehrerschein_Validating(object sender, CancelEventArgs e)
|
|
{
|
|
if (string.IsNullOrWhiteSpace(textBoxFuehrerschein.Text) || dateTimePickerFSGueltig.Value == DateTime.Today)
|
|
{
|
|
string s = $"Wenn Benutzerrolle ist Fahrer, müssen Führerscheinnummer und Ablaufdatum ausgefüllt werden.{Environment.NewLine}Möchtest du die Benutzerrolle wechseln?";
|
|
if (meldung.BenutzerRolleWechseln(s) == DialogResult.No)
|
|
{
|
|
e.Cancel = true;
|
|
groupBoxFuehrerschein.ForeColor = Color.Red;
|
|
tosave[2] = !e.Cancel;
|
|
}
|
|
else
|
|
{
|
|
groupBoxFuehrerschein.Visible = false;
|
|
this.Height = 300;
|
|
tosave[2] = e.Cancel;
|
|
}
|
|
}
|
|
else { groupBoxFuehrerschein.ForeColor = Color.White; tosave[2] = !e.Cancel; }
|
|
|
|
|
|
Enable_Speichern();
|
|
}
|
|
|
|
/// <summary>
|
|
/// TextBox Führerschein validieren. Keine Regelung für Speicherbuttonstatus.
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void textBoxFuehrerschein_Validating(object sender, CancelEventArgs e)
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(textBoxFuehrerschein.Text))
|
|
{
|
|
if (int.TryParse(textBoxFuehrerschein.Text, out int value)) textBoxFuehrerschein.BackColor = SystemColors.Window;
|
|
else
|
|
{
|
|
meldung.Eingabefehler();
|
|
e.Cancel = true;
|
|
textBoxFuehrerschein.BackColor = Color.Red;
|
|
}
|
|
}
|
|
else textBoxFuehrerschein.BackColor = SystemColors.Window;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Leave-Events zur unterstützung der Speicherbuttonstatus Regelung.
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void dateTimePickerFSGueltig_Leave(object sender, EventArgs e)
|
|
{
|
|
CancelEventArgs ce = new CancelEventArgs();
|
|
groupBoxFuehrerschein_Validating(groupBoxFuehrerschein, ce);
|
|
}
|
|
private void comboBoxRolle_Leave(object sender, EventArgs e)
|
|
{
|
|
CancelEventArgs ce = new CancelEventArgs();
|
|
comboBoxRolle_Validating(comboBoxRolle, ce);
|
|
}
|
|
private void textBoxFuehrerschein_Leave(object sender, EventArgs e)
|
|
{
|
|
CancelEventArgs ce = new CancelEventArgs();
|
|
textBoxFuehrerschein_Validating(textBoxFuehrerschein, ce);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Leave-Events ohne Auswirkung auf Speicherbuttonstatus Regelung.
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void textBoxVorname_Leave(object sender, EventArgs e)
|
|
{
|
|
this.textBoxBenutzername.Text = textBoxVorname.Text;
|
|
}
|
|
private void textBoxNachname_Leave(object sender, EventArgs e)
|
|
{
|
|
this.textBoxBenutzername.Text += textBoxNachname.Text;
|
|
}
|
|
|
|
/// <summary>
|
|
/// ComboBox Hintergrundfarbe verändern wenn DropDown geöffnet wird.
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void comboBoxRolle_DropDown(object sender, EventArgs e)
|
|
{
|
|
comboBoxRolle.BackColor = SystemColors.Window;
|
|
}
|
|
|
|
}
|
|
}
|