private void buttonAddSubject_Click(object sender, EventArgs e) { try { using (Database db = Leadtools.Ccow.Server.Utils.GetDatabase()) { SubjectDialog subjectDialog = new SubjectDialog(db); bool doAdd = true; try { Monitor.Enter(CcowServer.LockObject); subjectDialog.Subject = new CCOWSubject() { Id = Guid.NewGuid() }; db.CCOWSubject.InsertOnSubmit(subjectDialog.Subject); } catch (Exception ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); doAdd = false; } finally { Monitor.Exit(CcowServer.LockObject); } if (doAdd) { if (subjectDialog.ShowDialog(this) == DialogResult.OK) { try { Monitor.Enter(CcowServer.LockObject); db.SubmitChanges(); AddSubject(subjectDialog.Subject); } catch (Exception ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { Monitor.Exit(CcowServer.LockObject); } } } } } catch (Exception exception) { MessageBox.Show(exception.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void buttonEditSubject_Click(object sender, EventArgs e) { try { using (Database db = Leadtools.Ccow.Server.Utils.GetDatabase()) { DataLoadOptions o = new DataLoadOptions(); Guid subjectid = (Guid)listViewSubjects.SelectedItems[0].Tag; SubjectDialog subjectDialog; CCOWSubject subject; o.LoadWith <CCOWSubjectItems>(i => i.CCOWSubject); o.LoadWith <CCOWSubjectDependency>(d => d.CCOWSubject); o.LoadWith <CCOWSubjectApplication>(f => f.CCOWApplication); db.LoadOptions = o; try { Monitor.Enter(CcowServer.LockObject); subject = db.CCOWSubject.First(s => s.Id == subjectid); } finally { Monitor.Exit(CcowServer.LockObject); } subjectDialog = new SubjectDialog(db, subject); if (subjectDialog.ShowDialog(this) == DialogResult.OK) { try { Monitor.Enter(CcowServer.LockObject); db.SubmitChanges(); UpdateItem(listViewSubjects.SelectedItems[0], subject); } catch (Exception ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { Monitor.Exit(CcowServer.LockObject); } } } } catch (Exception exception) { MessageBox.Show(exception.Message, "Database access failed", MessageBoxButtons.OK, MessageBoxIcon.Error); } }