internal static Model.Archive.Report AddReport(string name, List <SearchField> searchFields, List <Model.Archive.ArchiveField> displayFields) { Model.Archive.Report report = null; var dc = Model.Archive.ArchiveDataClassesDataContext.GetNewInstance(); dc.Connection.Open(); dc.Transaction = dc.Connection.BeginTransaction(); try { if (dc.Reports.Where(t => t.Title == name).Count() == 1) { DeleteReport(dc, dc.Reports.Where(t => t.Title == name).Single().ID); } report = Model.Archive.Report.GetNewInstance(name); dc.Reports.InsertOnSubmit(report); dc.SubmitChanges(); foreach (SearchField item in searchFields) { AddDetailToReport(dc, report, item); } foreach (var item in displayFields) { Model.Archive.DisplayField d = Model.Archive.DisplayField.GetNewInstance((int)Enums.DisplayFieldCodes.گزارشات, report.ID, item.ID); dc.DisplayFields.InsertOnSubmit(d); } dc.SubmitChanges(); } catch { dc.Transaction.Rollback(); dc.Connection.Close(); throw; } dc.Transaction.Commit(); dc.Connection.Close(); return(report); }
private void saveToolStripButton_Click(object sender, EventArgs e) { string name; using (Njit.Program.Forms.GetValue f = new Njit.Program.Forms.GetValue("نام گزارش", "نام گزارش را وارد کنید")) { if (savedReportsListBox.SelectedIndex > 0) { f.Value = savedReportsListBox.SelectedItem.ToString(); } if (f.ShowDialog() == System.Windows.Forms.DialogResult.OK) { name = f.Value; } else { return; } } Model.Archive.Report report = null; try { List <SearchField> searchFields = new List <SearchField>(); AddToSearchFields(searchFields, queryTreeView.Nodes); List <Model.Archive.ArchiveField> displayFields = new List <Model.Archive.ArchiveField>(); AddToDisplayFields(displayFields, dossierFieldsTreeView.Nodes); AddToDisplayFields(displayFields, documentsFieldsTreeView.Nodes); report = Controller.Archive.ReportController.AddReport(name, searchFields, displayFields); } catch (Exception ex) { PersianMessageBox.Show(this, "خطا در ثبت اطلاعات" + "\r\n\r\n" + ex.Message); return; } RefreshReports(report.ID); }
private static void AddDetailToReport(Model.Archive.ArchiveDataClassesDataContext dc, Model.Archive.Report report, SearchField searchField) { Model.Archive.ReportDetail reportDetail = Model.Archive.ReportDetail.GetNewInstance(report.ID, searchField.Field.ID, (int)searchField.Relation, searchField.Method.Code, searchField.Value, null); dc.ReportDetails.InsertOnSubmit(reportDetail); dc.SubmitChanges(); foreach (var item in searchField.SearchFields) { AddDetailToDetail(dc, reportDetail, item); } }