partial void DeleteSenders(Senders instance);
partial void InsertSenders(Senders instance);
partial void UpdateSenders(Senders instance);
private void Save_Click(object sender, EventArgs e) { if (string.IsNullOrWhiteSpace(this.Host.Text)) this.errorProvider.SetError(this.Host, "Le champ Hôte doit être complété."); else if (this.ValidateChildren()) { using (SelfMailerDataContext context = new SelfMailerDataContext()) { using (TransactionScope transaction = new TransactionScope()) { MailServers newMailServer; Senders newSender; if (this.ConfigList.SelectedIndex >= 0) { ComboBoxItem selected = this.ConfigList.SelectedItem as ComboBoxItem; newMailServer = context.MailServers.Single<MailServers>(x => x.ID == selected.MailServerKey); newSender = context.Senders.Single<Senders>(x => x.ID == selected.SenderKey); } else { newMailServer = context.MailServers.SingleOrDefault<MailServers>(x => x.Host == this.Host.Text && x.Username == this.Username.Text && x.Password_Value == this.Password.Text); if (newMailServer == null) { newMailServer = new MailServers(); context.MailServers.InsertOnSubmit(newMailServer); } newSender = context.Senders.SingleOrDefault<Senders>(x => x.Name == this.FromName.Text && x.Email == this.FromEmail.Text); if (newSender == null) { newSender = new Senders(); context.Senders.InsertOnSubmit(newSender); } } newMailServer.Host = this.Host.Text; newMailServer.Username = this.Username.Text; newMailServer.Password_Value = this.Password.Text; newMailServer.Password_AllowSave = true; newSender.Name = this.FromName.Text; newSender.Email = this.FromEmail.Text; context.SubmitChanges(); MailServerSender rel = context.MailServerSender.SingleOrDefault<MailServerSender>(x => x.MailServer_ID == newMailServer.ID && x.Sender_ID == newSender.ID); if (rel == null) { rel = new MailServerSender(); rel.MailServer_ID = newMailServer.ID; rel.Sender_ID = newSender.ID; context.MailServerSender.InsertOnSubmit(rel); } context.SubmitChanges(); transaction.Complete(); } } } MessageBox.Show("La configuration a été enregistrée."); this.LoadConfigurations(); }