using Common; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Data.Entity; using System.Data.SqlClient; using System.Drawing; using System.Linq; using System.Net.Mail; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace PersonalLaundry { public partial class CompanyForm : Form { public event EventHandler CompanySaved; OperatorLogin operatorLogin; ConsoleForm console; int companyID; public CompanyForm(OperatorLogin operatorLogin, ConsoleForm console, int companyID) { this.operatorLogin = operatorLogin; this.console = console; this.companyID = companyID; InitializeComponent(); } public CompanyForm(OperatorLogin operatorLogin, ConsoleForm console) { this.operatorLogin = operatorLogin; this.console = console; InitializeComponent(); } private void CompanyForm_Load(object sender, EventArgs e) { LoadCompany(companyID); } private void LoadCompany(int i) { using (var db = new DataModel()) { var company = db.Companies.FirstOrDefault(c => c.CompanyID == i); if (company == null) return; CompanyName.Text = company.CompanyName; CompanyAddress.Text = company.CompanyAddress; CompanyPhone.Text = company.CompanyPhone; CompanyEmail.Text = company.CompanyEmail; CompanyVATNumber.Text = company.CompanyVATNumber; ServiceURL.Text = company.ServiceURL; CountReconEmailSubject.Text = company.CountReconEmailSubject; CountReconEmailBody.Text = company.CountReconEmailBody; } } private void Save() { using (var db = new DataModel()) { Company company; if (companyID == 0) { company = new Company { CompanyName = CompanyName.Text.Trim(), CompanyAddress = CompanyAddress.Text.Trim(), CompanyPhone = CompanyPhone.Text.Trim(), CompanyEmail = CompanyEmail.Text.Trim(), CompanyVATNumber = CompanyVATNumber.Text.Trim(), ServiceURL = ServiceURL.Text.Trim(), CountReconEmailSubject = CountReconEmailSubject.Text.Trim(), CountReconEmailBody = CountReconEmailBody.Text.Trim() }; db.Companies.Add(company); db.SaveChanges(); if (CompanySaved != null) CompanySaved(this, new EventArgs()); company = db.Companies.FirstOrDefault(c => c.CompanyName == CompanyName.Text.Trim()); if (company == null) return; companyID = company.CompanyID; MessageBox.Show(@"Saved!", @"Company", MessageBoxButtons.OK, MessageBoxIcon.Information); LoadCompany(companyID); console.PopulateMenu(); return; } company = db.Companies.FirstOrDefault(c => c.CompanyID == companyID); if (company == null) return; company.CompanyName = CompanyName.Text.Trim(); company.CompanyAddress = CompanyAddress.Text.Trim(); company.CompanyPhone = CompanyPhone.Text.Trim(); company.CompanyEmail = CompanyEmail.Text.Trim(); company.CompanyVATNumber = CompanyVATNumber.Text.Trim(); company.ServiceURL = ServiceURL.Text.Trim(); company.CountReconEmailSubject = CountReconEmailSubject.Text.Trim(); company.CountReconEmailBody = CountReconEmailBody.Text.Trim(); db.SaveChanges(); if (CompanySaved != null) CompanySaved(this, new EventArgs()); MessageBox.Show(@"Saved!", @"Company", MessageBoxButtons.OK, MessageBoxIcon.Information); LoadCompany(companyID); console.PopulateMenu(); } } private void CompanyForm_FormClosing(object sender, FormClosingEventArgs e) { if (MessageBox.Show(@"Would you like to save changes?", @"Save Company", MessageBoxButtons.YesNo) != DialogResult.Yes) return; Save(); } private void btnArchive_Click(object sender, EventArgs e) { try { // data archive confirmation message if (MessageBox.Show(@"Are you sure you want to archive the data? This action can not be reversed.", @"Archive Data", MessageBoxButtons.YesNo) != DialogResult.Yes) return; // check dates to make sure the end date is not before the start date if (dtpEndDate.Value.Date < dtpStartDate.Value.Date) { MessageBox.Show(@"End Date can not be before the Start Date.", @"Invalid", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } using (var db = new DataModel()) { // Call the stored procedure using ExecuteSqlCommand db.Database.ExecuteSqlCommand(TransactionalBehavior.DoNotEnsureTransaction, "EXEC sp_ArchiveData @FromDate, @ToDate, @CompanyID", new SqlParameter("@FromDate", dtpStartDate.Value.Date.ToString()), new SqlParameter("@ToDate", dtpEndDate.Value.Date.ToString()), new SqlParameter("@CompanyID", companyID)); } MessageBox.Show("Data archived successfully", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception ex) { MessageBox.Show("Error: " + ex.InnerException.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } }