using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using Common; namespace PersonalLaundry { public partial class OperatorLoginsForm : Form { delegate void Function(); OperatorLogin operatorLogin; public event System.EventHandler LoginSaved; public OperatorLoginsForm() { InitializeComponent(); } public OperatorLoginsForm(int operatorLoginId) { using (var db = new DataModel()) { operatorLogin = db.OperatorLogins.FirstOrDefault(t => t.OperatorLoginId == operatorLoginId); } InitializeComponent(); } private void OperatorLogins_Load(object sender, EventArgs e) { this.ActiveControl = Password; PopulateRole(); PopulateShift(); this.ActiveControl = Username; if (operatorLogin == null) return; this.ActiveControl = Password; this.Username.Enabled = false; // set to readonly so that you are updating the user. Username.Text = operatorLogin.Username; Password.Text = operatorLogin.Password; Role.SelectedValue = operatorLogin.OperatorRoleId; Shift.SelectedItem = operatorLogin.OperatorShift; } private void PopulateRole() { using (var db = new DataModel()) { Role.DataSource = db.OperatorRoles.Where(t => t.OperatorRoleId > 1).ToList(); } } private void PopulateShift() { Shift.Items.Insert(0, "AM"); Shift.Items.Insert(1, "PM"); } private void CloseButton_Click(object sender, EventArgs e) { CloseForm(); } private void CloseForm() { if (operatorLogin == null && string.IsNullOrEmpty(Password.Text) && string.IsNullOrEmpty(Password.Text)) return; if (Password.Text != operatorLogin.Password && MessageBox.Show("You have unsaved changes - would you like to exit without saving?", "Confirm exit", MessageBoxButtons.YesNo) == DialogResult.Yes) return; } private void SaveButton_Click(object sender, EventArgs e) { SaveOperatorLogin(); } private void SaveOperatorLogin() { if (Password.Text.Length < 4 || Password.Text.Length < 4) { MessageBox.Show("Please make sure that the username or password is longer than 3 characters", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (string.IsNullOrEmpty(Shift.Text)) { MessageBox.Show("Please select a shift", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } using (var db = new DataModel()) { var update = db.UpdateOperatorLogin(Username.Text, Password.Text, int.Parse(Role.SelectedValue.ToString()), Shift.Text.ToString()).FirstOrDefault(); if (update != null) operatorLogin = db.OperatorLogins.FirstOrDefault(f => f.OperatorLoginId == update.OperatorLoginId); if (this.LoginSaved != null) this.LoginSaved(this, new EventArgs()); MessageBox.Show("Saved!", "Login", MessageBoxButtons.OK, MessageBoxIcon.Information); } } private void Password_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode != Keys.Enter) return; this.SaveOperatorLogin(); } private void OperatorLoginsForm_FormClosing(object sender, FormClosingEventArgs e) { this.CloseForm(); } } }