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 System.Deployment.Application; using System.Net; using Common; using System.Reflection; using System.IO; //20230831 - split Customer menu item into active and intacive customers namespace PersonalLaundry { public partial class ConsoleForm : Form { public OperatorLogin operatorLogin; public ConsoleForm() { InitializeComponent(); } public ConsoleForm(OperatorLogin operatorLogin) { this.operatorLogin = operatorLogin; InitializeComponent(); } private void Console_Load(object sender, EventArgs e) { var form = new LoginForm(this) { MdiParent = this }; form.LoginValidated += LoginValidated; form.Show(); } public void PopulateMenu() { this.menuStrip.Items.Clear(); //20230831 - split Customer menu item into active and intacive customers var customersToolStripMenuItem = new ToolStripMenuItem { Text = "Active Customers" }; var customersInactiveToolStripMenuItem = new ToolStripMenuItem { Text = "Inactive Customers" }; using (var db = new DataModel()) { this.operatorLogin = db.OperatorLogins.FirstOrDefault(l => l.OperatorLoginId == 2); ToolStripMenuItem customerItem; ToolStripMenuItem customerLoginsMenu; ToolStripMenuItem customerLoginItem; ToolStripMenuItem customerInventoryItem; ToolStripMenuItem customerInactiveItem; ToolStripMenuItem customerInactiveLoginsMenu; ToolStripMenuItem customerInactiveLoginItem; ToolStripMenuItem customerInactiveInventoryItem; ToolStripMenuItem operatorLoginItem; //active customers foreach (var customer in db.Customers.Where(w => w.IsActive).OrderBy(u => u.Name)) { customerItem = new ToolStripMenuItem { Name = customer.CustomerId.ToString(), Text = customer.Name }; customerItem.Click += customerItem_Click; customerLoginsMenu = new ToolStripMenuItem { Text = "Logins" }; foreach (var customerLogin in customer.CustomerLogins.OrderBy(c => c.EmailAddress)) { customerLoginItem = new ToolStripMenuItem { Name = customerLogin.CustomerLoginId.ToString(), Text = customerLogin.EmailAddress, Checked = customerLogin.IsActive }; customerLoginItem.Click += customerLoginItem_Click; customerLoginsMenu.DropDownItems.Add(customerLoginItem); } if (customer.CustomerLogins.Count > 0) customerLoginsMenu.DropDownItems.Add(new ToolStripSeparator()); customerLoginItem = new ToolStripMenuItem { Name = customer.CustomerId.ToString(), Text = "Add a new login" }; customerLoginItem.Click += customerLoginItem_Click; customerLoginsMenu.DropDownItems.Add(customerLoginItem); customerItem.DropDownItems.Add(customerLoginsMenu); customerInventoryItem = new ToolStripMenuItem { Name = customer.CustomerId.ToString(), Text = "Update Inventory" }; customerInventoryItem.Click += customerInventoryItem_Click; customerItem.DropDownItems.Add(customerInventoryItem); customersToolStripMenuItem.DropDownItems.Add(customerItem); } customersToolStripMenuItem.DropDownItems.Add(new ToolStripSeparator()); customerItem = new ToolStripMenuItem { Name = "0", Text = "Add a new customer" }; customerItem.Click += customerItem_Click; customersToolStripMenuItem.DropDownItems.Add(customerItem); this.menuStrip.Items.Add(customersToolStripMenuItem); //inactive customers foreach (var customer in db.Customers.Where(w => !w.IsActive).OrderBy(u => u.Name)) //.Where(w => w.active = 0)) { customerInactiveItem = new ToolStripMenuItem { Name = customer.CustomerId.ToString(), Text = customer.Name }; customerInactiveItem.Click += customerItem_Click; customerInactiveLoginsMenu = new ToolStripMenuItem { Text = "Logins" }; foreach (var customerLogin in customer.CustomerLogins.OrderBy(c => c.EmailAddress)) { customerInactiveLoginItem = new ToolStripMenuItem { Name = customerLogin.CustomerLoginId.ToString(), Text = customerLogin.EmailAddress, Checked = customerLogin.IsActive }; customerInactiveLoginItem.Click += customerLoginItem_Click; customerInactiveLoginsMenu.DropDownItems.Add(customerInactiveLoginItem); } if (customer.CustomerLogins.Count > 0) customerInactiveLoginsMenu.DropDownItems.Add(new ToolStripSeparator()); customerInactiveLoginItem = new ToolStripMenuItem { Name = customer.CustomerId.ToString(), Text = "Add a new login" }; customerInactiveLoginItem.Click += customerLoginItem_Click; customerInactiveLoginsMenu.DropDownItems.Add(customerInactiveLoginItem); customerInactiveItem.DropDownItems.Add(customerInactiveLoginsMenu); customerInactiveInventoryItem = new ToolStripMenuItem { Name = customer.CustomerId.ToString(), Text = "Update Inventory" }; customerInactiveInventoryItem.Click += customerInventoryItem_Click; customerInactiveItem.DropDownItems.Add(customerInactiveInventoryItem); customersInactiveToolStripMenuItem.DropDownItems.Add(customerInactiveItem); } customersInactiveToolStripMenuItem.DropDownItems.Add(new ToolStripSeparator()); customerInactiveItem = new ToolStripMenuItem { Name = "0", Text = "Add a new customer" }; customerInactiveItem.Click += customerItem_Click; customersInactiveToolStripMenuItem.DropDownItems.Add(customerInactiveItem); this.menuStrip.Items.Add(customersInactiveToolStripMenuItem); var operatorLoginsItem = new ToolStripMenuItem { Text = "Operators" }; foreach (var operatorLogin in db.OperatorLogins.Where(o => o.OperatorLoginId > 1)) { operatorLoginItem = new ToolStripMenuItem { Name = operatorLogin.OperatorLoginId.ToString(), Text = operatorLogin.Username, Checked = operatorLogin.OperatorRole.CanLogin }; operatorLoginItem.Click += operatorLoginItem_Click; operatorLoginsItem.DropDownItems.Add(operatorLoginItem); } operatorLoginsItem.DropDownItems.Add(new ToolStripSeparator()); operatorLoginItem = new ToolStripMenuItem { Name = "0", Text = "Add a new operator" }; operatorLoginItem.Click += operatorLoginItem_Click; operatorLoginsItem.DropDownItems.Add(operatorLoginItem); this.menuStrip.Items.Add(operatorLoginsItem); //Added 2016/04/21 var priceIncreaseItem = new ToolStripMenuItem { Text = "Price Increase" }; priceIncreaseItem.Click += priceIncreaseItem_Click; this.menuStrip.Items.Add(priceIncreaseItem); //Added 20171024 var reportsItem = new ToolStripMenuItem { Text = "Reports" }; reportsItem.Click += reportsItem_Click; this.menuStrip.Items.Add(reportsItem); var settingsItem = new ToolStripMenuItem { Text = "Settings" }; settingsItem.Click += settingsItem_Click; this.menuStrip.Items.Add(settingsItem); } } void customerInventoryItem_Click(object sender, EventArgs e) { var menu = sender as ToolStripMenuItem; using (var db = new DataModel()) { int customerId; if (!int.TryParse(menu.Name, out customerId)) return; var inventoryForm = new UpdateCustomerInventory(this.operatorLogin, customerId) { MdiParent = this }; inventoryForm.Show(); } } void customerItem_Click(object sender, EventArgs e) { var menu = sender as ToolStripMenuItem; using (var db = new DataModel()) { int customerId; if (menu.Text == "Add a new customer") { var customerNewForm = new CustomerForm(this.operatorLogin, this) { MdiParent = this }; customerNewForm.Show(); return; } if (!int.TryParse(menu.Name, out customerId)) return; var customerForm = new CustomerForm(this.operatorLogin, this, customerId) { MdiParent = this }; customerForm.Show(); } } void customerLoginItem_Click(object sender, EventArgs e) { CustomerLoginsForm customerLoginsForm; var menu = sender as ToolStripMenuItem; using (var db = new DataModel()) { int customerId; int customerLoginId; if (menu.Text == "Add a new login" && int.TryParse(menu.Name, out customerId)) { var customer = db.Customers.FirstOrDefault(c => c.CustomerId == customerId); customerLoginsForm = new CustomerLoginsForm(this.operatorLogin, customer) { MdiParent = this }; customerLoginsForm.CustomerLoginSaved += CustomerLoginSaved; customerLoginsForm.Show(); return; } if (!int.TryParse(menu.Name, out customerLoginId)) return; var customerLogin = db.CustomerLogins.FirstOrDefault(l => l.CustomerLoginId == customerLoginId); customerLoginsForm = new CustomerLoginsForm(this.operatorLogin, customerLogin.Customer, customerLogin) { MdiParent = this }; customerLoginsForm.CustomerLoginSaved += CustomerLoginSaved; customerLoginsForm.Show(); } } void operatorLoginItem_Click(object sender, EventArgs e) { var menu = sender as ToolStripMenuItem; using (var db = new DataModel()) { int operatorLoginId; if (!int.TryParse(menu.Name, out operatorLoginId)) operatorLoginId = 0; var operatorLoginForm = new OperatorLoginsForm(operatorLoginId) { MdiParent = this }; operatorLoginForm.LoginSaved += CustomerLoginSaved; operatorLoginForm.Show(); } } private void CustomerLoginSaved(object sender, EventArgs e) { this.PopulateMenu(); } private void LoginValidated(object sender, EventArgs e) { var parent = (LoginForm)sender; this.operatorLogin = parent.operatorLogin; PopulateMenu(); } private void ConsoleForm_FormClosing(object sender, FormClosingEventArgs e) { if (MessageBox.Show("Are you sure?", "Close", MessageBoxButtons.YesNo) == DialogResult.Yes) { this.Close(); } } private void settingsItem_Click(object sender, EventArgs e) { var form = new SettingsForm(operatorLogin) { MdiParent = this }; form.Show(); } private void priceIncreaseItem_Click(object sender, EventArgs e) { var form = new PriceIncreaseForm(operatorLogin) { MdiParent = this }; form.Show(); } //Added 20171024 private void reportsItem_Click(object sender, EventArgs e) { var form = new ReportConsoleForm(operatorLogin) { MdiParent = this }; form.Show(); } } }