public static void AddArchiveTabForArchives(Model.Common.ArchiveGroupTab archiveGroupTab, Model.Common.ArchiveCommonDataClassesDataContext dc, List <Model.Archive.ArchiveDataClassesDataContext> dataContextOfArchives) { foreach (var archiveDC in dataContextOfArchives) { AddArchiveTabToArchive(archiveGroupTab, dc, archiveDC); } }
public static void AddArchiveTabToArchive(Model.Common.ArchiveGroupTab archiveGroupTab, Model.Common.ArchiveCommonDataClassesDataContext dc, Model.Archive.ArchiveDataClassesDataContext archiveDC) { if (archiveDC.ArchiveTabs.Where(t => t.TypeCode == archiveGroupTab.TypeCode && t.Title == archiveGroupTab.Title && t.Deleted == false).Count() > 0) { throw new Exception(" گروه اطلاعاتی '" + archiveGroupTab.Title + "' در بایگانی '" + dc.Archives.Where(t => t.Name == archiveDC.Connection.Database).Select(t => t.Title).Single() + "' وجود دارد لطفا نام دیگری را انتخاب کنید "); } Model.Archive.ArchiveTab archiveTab = Model.Archive.ArchiveTab.GetNewInstance(archiveGroupTab.TypeCode, 0, null, archiveGroupTab.Title, true, false, archiveGroupTab.ID, false); Controller.Archive.ArchiveTabController.Insert(archiveTab, archiveDC); archiveDC.SubmitChanges(); SqlHelper.CreateTableForArchiveTab(archiveDC, archiveTab); foreach (Model.Common.ArchiveGroupField field in Controller.Common.ArchiveGroupTabController.GetArchiveGroupFields(dc, archiveGroupTab.ID, archiveGroupTab.ArchiveGroupID)) { Controller.Archive.ArchiveFieldController.AddField(archiveDC, field); foreach (Model.Common.ArchiveGroupSubGroupField subField in Controller.Common.ArchiveGroupFieldController.GetArchiveGroupSubGroupFields(dc, field.ID)) { Controller.Archive.ArchiveSubGroupFieldController.AddSubGroupField(archiveDC, subField); } } if (archiveGroupTab.TypeCode == (int)Enums.TabTypes.Dossier) { Setting.User.ThisProgram.AddLog(dc, Setting.User.UserOparatesPlaceNames.گروه_اطلاعاتی_پرونده, Setting.User.UserOparatesNames.ثبت, null, "ثبت گروه اطلاعاتی '" + archiveTab.Title + "' در بایگانی '" + archiveDC.GetArchive().Title + "'"); } else { Setting.User.ThisProgram.AddLog(dc, Setting.User.UserOparatesPlaceNames.گروه_اطلاعاتی_سند, Setting.User.UserOparatesNames.ثبت, null, "ثبت گروه اطلاعاتی '" + archiveTab.Title + "' در بایگانی '" + archiveDC.GetArchive().Title + "'"); } }
public static void Update_ArchiveTabIndex(Model.Common.ArchiveGroupTab _ArchiveGroupTab) { List <System.Data.Common.DbTransaction> _DbTransactionAllArchive = new List <System.Data.Common.DbTransaction>(); List <Model.Archive.ArchiveDataClassesDataContext> dcAllArchive = new List <Model.Archive.ArchiveDataClassesDataContext>(); Model.Common.ArchiveCommonDataClassesDataContext dc = new Model.Common.ArchiveCommonDataClassesDataContext(Setting.Sql.ThisProgram.DatabaseConnection.ConnectionString); dc.Connection.Open(); dc.Transaction = dc.Connection.BeginTransaction(); try { //---------------ArchiveGroupTab تغییر نام گروه اطلاعاتی در Model.Common.ArchiveGroupTab.Copy(dc.ArchiveGroupTabs.Where(t => t.ID == _ArchiveGroupTab.ID).Single(), _ArchiveGroupTab); dc.SubmitChanges(); dc.Transaction.Commit(); } catch (Exception ex)//----- بازگرداندن تمام تراکنش ها { dc.Transaction.Rollback(); throw new Exception("خطا در بروزرسانی اطلاعات" + "\r\n\r\n" + ex.Message); } finally//--------------- بستن تمام کانکشن ها { dc.Connection.Close(); } }
private void CreateTab() { try { Model.Common.ArchiveGroupTab archiveGroupTab = Model.Common.ArchiveGroupTab.GetNewInstance(_ArchiveGroupID, _TypeCode, 0, txtGroupName.Text); Controller.Common.ArchiveGroupTabController.Insert(archiveGroupTab); this.DialogResult = DialogResult.OK; this.Close(); } catch (Exception ex) { PersianMessageBox.Show(ex.Message, "هشدار", MessageBoxButtons.OK, MessageBoxIcon.Warning); } }
internal static void CheckFieldName(Model.Common.ArchiveCommonDataClassesDataContext dc, List <Model.Archive.ArchiveDataClassesDataContext> archivesDataContext, string label, int archiveGroupTabID) { Model.Common.ArchiveGroupTab archiveGroupTab = dc.ArchiveGroupTabs.Where(t => t.ID == archiveGroupTabID).Single(); if (dc.ArchiveGroupFields.Where(t => t.ArchiveGroupTabID == archiveGroupTabID && t.Label == label).Count() > 0) { throw new Exception(string.Format("فیلد '{0}' در گروه اطلاعاتی '{1}' وجود دارد. لطفا نام دیگری را انتخاب کنید", label, archiveGroupTab.Title)); } foreach (Model.Archive.ArchiveDataClassesDataContext dcArchive in archivesDataContext) { foreach (var archiveTab in dcArchive.ArchiveTabs.Where(t => t.IDParent == archiveGroupTabID && t.Deleted == false)) { if (archiveTab.ArchiveFields.Where(t => t.Label == label).Count() > 0) { throw new Exception(string.Format("فیلد '{0}' در گروه اطلاعاتی '{1}' مربوط به بایگانی '{2}' وجود دارد. لطفا نام دیگری را انتخاب کنید", label, archiveTab.Title, Controller.Common.ArchiveController.GetArchiveTitle(dcArchive.Connection.Database))); } } } }
protected override void OnFormClosing(FormClosingEventArgs e) { base.OnFormClosing(e); try { for (int i = 0; i < radGridView1.RowCount; i++) { int ID = int.Parse(radGridView1.Rows[i].Cells["ID"].Value.ToString()); Model.Common.ArchiveGroupTab CurrentArchiveGroupTab = Controller.Common.ArchiveGroupTabController.Select(ID); CurrentArchiveGroupTab.Index = (i + 1); Controller.Common.ArchiveGroupTabController.Update_ArchiveTabIndex(CurrentArchiveGroupTab); } } catch (Exception ex) { PersianMessageBox.Show(ex.Message, "خطا", MessageBoxButtons.OK, MessageBoxIcon.Warning); } }
private void UpdateTab() { String erroreMessage; if (Controller.Common.ArchiveGroupTabController.TabExistNameCheck_UsedArchive(txtGroupName.Text, _TypeCode, _ID, out erroreMessage)) { PersianMessageBox.Show(erroreMessage, "هشدار", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } else { Model.Common.ArchiveGroupTab archiveGroupTab = Controller.Common.ArchiveGroupTabController.Select(_ID); archiveGroupTab.Title = txtGroupName.Text; Controller.Common.ArchiveGroupTabController.Update(archiveGroupTab); this.DialogResult = DialogResult.OK; this.Close(); } }
public static IEnumerable <Field> GetFields(Model.Common.ArchiveGroupTab archiveGroupTab, int archiveGroupID) { List <Field> list = new List <Field>(); IEnumerable <int> baseArchiveGroupIDs = Controller.Common.ArchiveGroupController.GetBaseArchiveGroups(archiveGroupID).Select(t => t.ID); foreach (var item in archiveGroupTab.ArchiveGroupFields.Where(t => t.ArchiveGroupID == archiveGroupID || baseArchiveGroupIDs.Contains(t.ArchiveGroupID)).OrderBy(t => t.Index)) { list.Add(new Field(item.ID, item.Label, item.FieldName, item.FieldTypeCode, item.FieldType.Title, item.StatusCode, item.FieldStatus.Title, item.BoxTypeCode, item.BoxType.Title, item.AutoComplete, item.MinLength, item.MaxLength, item.MinValue, item.MaxValue, (item.ArchiveGroupID != archiveGroupID) ? item.ArchiveGroupTabID : (int?)null, item.Index, item.DefaultValue)); if (item.FieldTypeCode == (int)Enums.FieldTypes.زیرگروه_جدولی) { List <Field> list2 = new List <Field>(); foreach (var item2 in item.ArchiveGroupSubGroupFields.OrderBy(t => t.Index)) { list2.Add(new Field(item2.ID, item2.Label, item2.FieldName, item2.FieldTypeCode, item2.FieldType.Title, item2.StatusCode, item2.FieldStatus.Title, item2.BoxTypeCode, item2.BoxType.Title, item2.AutoComplete, item2.MinLength, item2.MaxLength, item2.MinValue, item2.MaxValue, (item.ArchiveGroupID != archiveGroupID) ? item.ArchiveGroupTabID : (int?)null, item2.Index, item.DefaultValue)); } list[list.Count - 1].SubFields = list2; } } return(list); }
public static void Insert(Model.Common.ArchiveGroupTab archiveGroupTab) { List <System.Data.Common.DbTransaction> transactionOfArchives = new List <System.Data.Common.DbTransaction>(); List <Model.Archive.ArchiveDataClassesDataContext> archivesDC = new List <Model.Archive.ArchiveDataClassesDataContext>(); Model.Common.ArchiveCommonDataClassesDataContext dc = new Model.Common.ArchiveCommonDataClassesDataContext(Setting.Sql.ThisProgram.DatabaseConnection.ConnectionString); dc.Connection.Open(); dc.Transaction = dc.Connection.BeginTransaction(); try { //--------------- ArchiveGroupTab ذخیره گروه اطلاعاتی در archiveGroupTab.Index = dc.ArchiveGroupTabs.Count() == 0 ? 1 : (dc.ArchiveGroupTabs.Select(t => t.Index).Max() + 1); dc.ArchiveGroupTabs.InsertOnSubmit(archiveGroupTab); dc.SubmitChanges(); if (archiveGroupTab.TypeCode == (int)Enums.TabTypes.Dossier) { Setting.User.ThisProgram.AddLog(dc, Setting.User.UserOparatesPlaceNames.گروه_اطلاعاتی_پرونده, Setting.User.UserOparatesNames.ثبت, null, "ثبت گروه اطلاعاتی '" + archiveGroupTab.Title + "' در گروه بایگانی '" + archiveGroupTab.ArchiveGroup.Title + "'"); } else { Setting.User.ThisProgram.AddLog(dc, Setting.User.UserOparatesPlaceNames.گروه_اطلاعاتی_سند, Setting.User.UserOparatesNames.ثبت, null, "ثبت گروه اطلاعاتی '" + archiveGroupTab.Title + "' در گروه بایگانی '" + archiveGroupTab.ArchiveGroup.Title + "'"); } //---------------ذخیره گروه اطلاعاتی در بایگانی های مشتق شده foreach (string sqlConnectionString in GetArchivesConnectionStrings(archiveGroupTab.ID, dc)) { Model.Archive.ArchiveDataClassesDataContext archiveDC = new Model.Archive.ArchiveDataClassesDataContext(sqlConnectionString); archiveDC.Connection.Open(); archivesDC.Add(archiveDC); transactionOfArchives.Add(archiveDC.Connection.BeginTransaction()); archiveDC.Transaction = transactionOfArchives[transactionOfArchives.Count - 1]; } AddArchiveTabForArchives(archiveGroupTab, dc, archivesDC); //--------------- عمل کردن تمام تراکنش ها foreach (System.Data.Common.DbTransaction tr in transactionOfArchives) { tr.Commit(); } dc.Transaction.Commit(); } //--------------- بازگرداندن تمام تراکنش ها catch (Exception ex) { foreach (System.Data.Common.DbTransaction tr in transactionOfArchives) { tr.Rollback(); } dc.Transaction.Rollback(); throw new Exception("خطا در ثبت اطلاعات" + "\r\n\r\n" + ex.Message); } //--------------- بستن تمام کانکشن ها finally { foreach (Model.Archive.ArchiveDataClassesDataContext dcArchive in archivesDC) { dcArchive.Connection.Close(); } dc.Connection.Close(); } }
public static IEnumerable <NjitSoftware.Model.Common.ArchiveGroupTab> GetBaseTabs(Model.Common.ArchiveGroupTab archiveGroupTab) { List <NjitSoftware.Model.Common.ArchiveGroupTab> list = new List <NjitSoftware.Model.Common.ArchiveGroupTab>(); AddBaseArchiveGroupTabsToList(list, archiveGroupTab.ArchiveGroup); return(list); }
public static void Update(Model.Common.ArchiveGroupTab _ArchiveGroupTab) { List <System.Data.Common.DbTransaction> _DbTransactionAllArchive = new List <System.Data.Common.DbTransaction>(); List <Model.Archive.ArchiveDataClassesDataContext> dcAllArchive = new List <Model.Archive.ArchiveDataClassesDataContext>(); Model.Common.ArchiveCommonDataClassesDataContext dc = new Model.Common.ArchiveCommonDataClassesDataContext(Setting.Sql.ThisProgram.DatabaseConnection.ConnectionString); dc.Connection.Open(); dc.Transaction = dc.Connection.BeginTransaction(); try { //---------------ArchiveGroupTab تغییر نام گروه اطلاعاتی در var originalArchiveGroupTab = dc.ArchiveGroupTabs.Where(t => t.ID == _ArchiveGroupTab.ID).Single(); string original_title = originalArchiveGroupTab.Title; Model.Common.ArchiveGroupTab.Copy(originalArchiveGroupTab, _ArchiveGroupTab); dc.SubmitChanges(); if (_ArchiveGroupTab.TypeCode == (int)Enums.TabTypes.Dossier) { Setting.User.ThisProgram.AddLog(dc, Setting.User.UserOparatesPlaceNames.گروه_اطلاعاتی_پرونده, Setting.User.UserOparatesNames.ویرایش, null, "تغییر نام گروه اطلاعاتی '" + original_title + "' به '" + _ArchiveGroupTab.Title + "'"); } else { Setting.User.ThisProgram.AddLog(dc, Setting.User.UserOparatesPlaceNames.گروه_اطلاعاتی_سند, Setting.User.UserOparatesNames.ویرایش, null, "تغییر نام گروه اطلاعاتی '" + original_title + "' به '" + _ArchiveGroupTab.Title + "'"); } //--------- ذخیره گروه اطلاعاتی در بایگانی های مشتق شده foreach (string SqlConnection in GetArchivesConnectionStrings(_ArchiveGroupTab.ID, dc)) { Model.Archive.ArchiveDataClassesDataContext dcArchive = new Model.Archive.ArchiveDataClassesDataContext(SqlConnection); dcArchive.Connection.Open(); dcAllArchive.Add(dcArchive); // لیست تمام کانکشن ها _DbTransactionAllArchive.Add(dcArchive.Connection.BeginTransaction()); //----- لیست تمام تراکنش ها dcArchive.Transaction = _DbTransactionAllArchive[_DbTransactionAllArchive.Count - 1]; if (dcArchive.ArchiveTabs.Where(t => t.TypeCode == _ArchiveGroupTab.TypeCode && t.Title == _ArchiveGroupTab.Title && t.Deleted == false).Count() > 0 ? true : false) { string Message = " گروه اطلاعاتی " + _ArchiveGroupTab.Title + " در بایگانی " + dc.Archives.Where(t => t.Name == dcArchive.Connection.Database).Select(t => t.Title).Single() + " وجود دارد لطفا نام دیگری را انتخاب کنید "; throw new Exception(Message); } else { Model.Archive.ArchiveTab archiveTab = dcArchive.ArchiveTabs.Where(t => t.IDParent == _ArchiveGroupTab.ID).Single(); archiveTab.Title = _ArchiveGroupTab.Title; dcArchive.SubmitChanges(); if (archiveTab.TypeCode == (int)Enums.TabTypes.Dossier) { Setting.User.ThisProgram.AddLog(dc, Setting.User.UserOparatesPlaceNames.گروه_اطلاعاتی_پرونده, Setting.User.UserOparatesNames.ویرایش, null, "تغییر نام گروه اطلاعاتی '" + original_title + "' در بایگانی '" + dcArchive.GetArchive().Title + "' به '" + _ArchiveGroupTab.Title + "'"); } else { Setting.User.ThisProgram.AddLog(dc, Setting.User.UserOparatesPlaceNames.گروه_اطلاعاتی_سند, Setting.User.UserOparatesNames.ویرایش, null, "تغییر نام گروه اطلاعاتی '" + original_title + "' در بایگانی '" + dcArchive.GetArchive().Title + "' به '" + _ArchiveGroupTab.Title + "'"); } } } //------ عمل کردن تمام تراکنش ها foreach (System.Data.Common.DbTransaction DbTransaction in _DbTransactionAllArchive) { DbTransaction.Commit(); } dc.Transaction.Commit(); } catch (Exception ex)//----- بازگرداندن تمام تراکنش ها { foreach (System.Data.Common.DbTransaction DbTransaction in _DbTransactionAllArchive) { DbTransaction.Rollback(); } dc.Transaction.Rollback(); throw new Exception("خطا در بروزرسانی اطلاعات" + "\r\n\r\n" + ex.Message); } finally//--------------- بستن تمام کانکشن ها { foreach (Model.Archive.ArchiveDataClassesDataContext dcArchive in dcAllArchive) { dcArchive.Connection.Close(); } dc.Connection.Close(); } }
internal static int AddField(Field field, int archiveGroupTabID, int archiveGroupID) { Model.Common.ArchiveCommonDataClassesDataContext commonDataContext = new Model.Common.ArchiveCommonDataClassesDataContext(Setting.Sql.ThisProgram.DatabaseConnection.ConnectionString); List <Model.Archive.ArchiveDataClassesDataContext> archivesDataContext = new List <Model.Archive.ArchiveDataClassesDataContext>(); try { commonDataContext.Connection.Open(); commonDataContext.Transaction = commonDataContext.Connection.BeginTransaction(); IEnumerable <string> archivesConnections = Controller.Common.ArchiveGroupTabController.GetArchivesConnectionStrings(archiveGroupTabID); foreach (string connectionString in archivesConnections) { Model.Archive.ArchiveDataClassesDataContext dcArchive = new Model.Archive.ArchiveDataClassesDataContext(connectionString); dcArchive.Connection.Open(); dcArchive.Transaction = dcArchive.Connection.BeginTransaction(); archivesDataContext.Add(dcArchive); } CheckFieldName(commonDataContext, archivesDataContext, field.Label, archiveGroupTabID); Model.Common.ArchiveGroupTab archiveGroupTab = commonDataContext.ArchiveGroupTabs.Where(t => t.ID == archiveGroupTabID).Single(); int index = 1; if (archiveGroupTab.ArchiveGroupFields.Count > 0) { index = archiveGroupTab.ArchiveGroupFields.Max(t => t.Index) + 1; } Model.Common.ArchiveGroupField archiveGroupField = Model.Common.ArchiveGroupField.GetNewInstance(archiveGroupID, archiveGroupTab.ID, field.Label, field.FieldName, field.FieldTypeCode, field.StatusCode, field.BoxTypeCode, field.AutoComplete, field.MinLength, field.MaxLength, field.MinValue, field.MaxValue, field.DefaultValue, index); commonDataContext.ArchiveGroupFields.InsertOnSubmit(archiveGroupField); commonDataContext.SubmitChanges(); try { Setting.User.ThisProgram.AddLog(commonDataContext, Setting.User.UserOparatesPlaceNames.گروه_بایگانی, Setting.User.UserOparatesNames.ثبت, null, "افزودن فیلد '" + archiveGroupField.Label + "' به گروه اطلاعاتی '" + archiveGroupField.ArchiveGroupTab.Title + "'"); } catch { throw new Exception("خطا در ذخیره عملکرد کاربر جاری"); } foreach (var dc in archivesDataContext) { Controller.Archive.ArchiveFieldController.AddField(dc, archiveGroupField); } commonDataContext.Transaction.Commit(); foreach (var dcArchive in archivesDataContext) { dcArchive.Transaction.Commit(); } return(archiveGroupField.ID); } catch { commonDataContext.Transaction.Rollback(); foreach (var dcArchive in archivesDataContext) { dcArchive.Transaction.Rollback(); } throw; } finally { foreach (var dcArchive in archivesDataContext) { if (dcArchive.Connection.State == System.Data.ConnectionState.Open) { dcArchive.Connection.Close(); } } if (commonDataContext.Connection.State == System.Data.ConnectionState.Open) { commonDataContext.Connection.Close(); } } }