internal static void UpdateSubGroupField(int originalSubGroupFieldID, Field field) { Model.Archive.ArchiveDataClassesDataContext dc = Model.Archive.ArchiveDataClassesDataContext.GetNewInstance(); dc.Connection.Open(); dc.Transaction = dc.Connection.BeginTransaction(); try { Model.Archive.ArchiveSubGroupField originalArchiveSubGroupField = dc.ArchiveSubGroupFields.Where(t => t.ID == originalSubGroupFieldID).Single(); string originalLabel = originalArchiveSubGroupField.Label; int originalBoxTypeCode = originalArchiveSubGroupField.BoxTypeCode; string originalDefaultValue = originalArchiveSubGroupField.DefaultValue; if (FieldNameAlreadyExist(dc, originalArchiveSubGroupField.ArchiveFieldID, field.Label, originalArchiveSubGroupField.ID)) { throw new Exception(string.Format("فیلد '{0}' در زیرگروه جدولی '{1}' وجود دارد. لطفا نام دیگری انتخاب کنید", field.Label, originalArchiveSubGroupField.ArchiveField.Label)); } Model.Archive.ArchiveSubGroupField archiveSubGroupField = Model.Archive.ArchiveSubGroupField.GetNewInstance(originalArchiveSubGroupField.ID, originalArchiveSubGroupField.ArchiveField.ID, field.Label, originalArchiveSubGroupField.FieldName, field.FieldTypeCode, field.StatusCode, field.BoxTypeCode, field.AutoComplete, field.MinLength, field.MaxLength, field.MinValue, field.MaxValue, field.DefaultValue, originalArchiveSubGroupField.IDParent, originalArchiveSubGroupField.Index); Model.Archive.ArchiveSubGroupField.Copy(originalArchiveSubGroupField, archiveSubGroupField); dc.SubmitChanges(); SqlHelper.UpdateGroupField(dc, originalArchiveSubGroupField, (Enums.BoxTypes)originalBoxTypeCode, originalDefaultValue); try { Setting.User.ThisProgram.AddLog(Setting.User.UserOparatesPlaceNames.بایگانی, Setting.User.UserOparatesNames.ویرایش, null, "ویرایش فیلد '" + originalLabel + "' در فیلد '" + originalArchiveSubGroupField.ArchiveField.Label + "' در گروه اطلاعاتی '" + originalArchiveSubGroupField.ArchiveField.ArchiveTab.Title + "' در بایگانی '" + dc.GetArchive().Title + "'"); } catch { throw new Exception("خطا در ذخیره عملکرد کاربر جاری"); } dc.Transaction.Commit(); dc.Connection.Close(); } catch { dc.Transaction.Rollback(); dc.Connection.Close(); throw; } finally { if (dc.Connection.State == System.Data.ConnectionState.Open) { dc.Connection.Close(); } } }
internal static void AddSubGroupField(Model.Archive.ArchiveDataClassesDataContext dc, Model.Common.ArchiveGroupSubGroupField archiveGroupSubGroupField) { Model.Archive.ArchiveField archiveField = dc.ArchiveFields.Where(t => t.IDParent == archiveGroupSubGroupField.ArchiveGroupFieldID).Single(); int index = 1; if (archiveField.ArchiveSubGroupFields.Count > 0) { index = (archiveField.ArchiveSubGroupFields.Max(t => t.Index) + 1); } if (FieldNameAlreadyExist(dc, archiveField.ID, archiveGroupSubGroupField.Label)) { throw new Exception(string.Format("فیلد '{0}' در زیرگروه جدولی '{1}' وجود دارد. لطفا نام دیگری انتخاب کنید", archiveGroupSubGroupField.Label, archiveField.Label)); } Model.Archive.ArchiveSubGroupField archiveSubGroupField = Model.Archive.ArchiveSubGroupField.GetNewInstance(archiveField.ID, archiveGroupSubGroupField.Label, null, archiveGroupSubGroupField.FieldTypeCode, archiveGroupSubGroupField.StatusCode, archiveGroupSubGroupField.BoxTypeCode, archiveGroupSubGroupField.AutoComplete, archiveGroupSubGroupField.MinLength, archiveGroupSubGroupField.MaxLength, archiveGroupSubGroupField.MinValue, archiveGroupSubGroupField.MaxValue, archiveGroupSubGroupField.DefaultValue, archiveGroupSubGroupField.ID, index); dc.ArchiveSubGroupFields.InsertOnSubmit(archiveSubGroupField); dc.SubmitChanges(); SqlHelper.CreateFieldForSubGroupField(dc, archiveSubGroupField); try { Setting.User.ThisProgram.AddLog(Setting.User.UserOparatesPlaceNames.بایگانی, Setting.User.UserOparatesNames.ثبت, null, "افزودن فیلد '" + archiveSubGroupField.Label + "' به فیلد '" + archiveField.Label + "' در گروه اطلاعاتی '" + archiveField.ArchiveTab.Title + "' در بایگانی '" + dc.GetArchive().Title + "'"); } catch { throw new Exception("خطا در ذخیره عملکرد کاربر جاری"); } }
internal static int AddSubGroupField(Field field, int archiveFieldID) { Model.Archive.ArchiveDataClassesDataContext dc = Model.Archive.ArchiveDataClassesDataContext.GetNewInstance(); dc.Connection.Open(); dc.Transaction = dc.Connection.BeginTransaction(); try { Model.Archive.ArchiveField archiveField = dc.ArchiveFields.Where(t => t.ID == archiveFieldID).Single(); int index = 1; if (archiveField.ArchiveSubGroupFields.Count > 0) { index = (archiveField.ArchiveSubGroupFields.Max(t => t.Index) + 1); } if (FieldNameAlreadyExist(dc, archiveFieldID, field.Label)) { throw new Exception(string.Format("فیلد '{0}' در زیرگروه جدولی '{1}' وجود دارد. لطفا نام دیگری انتخاب کنید", field.Label, archiveField.Label)); } Model.Archive.ArchiveSubGroupField archiveSubGroupField = Model.Archive.ArchiveSubGroupField.GetNewInstance(archiveFieldID, field.Label, field.FieldName, field.FieldTypeCode, field.StatusCode, field.BoxTypeCode, field.AutoComplete, field.MinLength, field.MaxLength, field.MinValue, field.MaxValue, field.DefaultValue, null, index); dc.ArchiveSubGroupFields.InsertOnSubmit(archiveSubGroupField); dc.SubmitChanges(); SqlHelper.CreateFieldForSubGroupField(dc, archiveSubGroupField); try { Setting.User.ThisProgram.AddLog(Setting.User.UserOparatesPlaceNames.بایگانی, Setting.User.UserOparatesNames.ثبت, null, "افزودن فیلد '" + archiveSubGroupField.Label + "' به فیلد '" + archiveField.Label + "' در گروه اطلاعاتی '" + archiveField.ArchiveTab.Title + "' در بایگانی '" + dc.GetArchive().Title + "'"); } catch { throw new Exception("خطا در ذخیره عملکرد کاربر جاری"); } dc.Transaction.Commit(); dc.Connection.Close(); return(archiveSubGroupField.ID); } catch { dc.Transaction.Rollback(); dc.Connection.Close(); throw; } finally { if (dc.Connection.State == System.Data.ConnectionState.Open) { dc.Connection.Close(); } } }
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 + "'"); } }
internal static void DeleteSubGroupField(int id) { Model.Archive.ArchiveDataClassesDataContext dc = Model.Archive.ArchiveDataClassesDataContext.GetNewInstance(); dc.Connection.Open(); dc.Transaction = dc.Connection.BeginTransaction(); try { Model.Archive.ArchiveSubGroupField archiveSubGroupField = dc.ArchiveSubGroupFields.Where(t => t.ID == id).Single(); string originalLabel = archiveSubGroupField.Label; string originalArchiveFieldLabel = archiveSubGroupField.ArchiveField.Label; string originalArchiveTabTitle = archiveSubGroupField.ArchiveField.ArchiveTab.Title; if (archiveSubGroupField.IDParent.HasValue) { archiveSubGroupField.IDParent = null; dc.SubmitChanges(); } else { SqlHelper.DeleteGroupField(dc, archiveSubGroupField); dc.ArchiveSubGroupFields.DeleteOnSubmit(archiveSubGroupField); dc.SubmitChanges(); try { Setting.User.ThisProgram.AddLog(Setting.User.UserOparatesPlaceNames.بایگانی, Setting.User.UserOparatesNames.حذف, null, "حذف فیلد '" + originalLabel + "' در فیلد '" + originalArchiveFieldLabel + "' در گروه اطلاعاتی '" + originalArchiveTabTitle + "' در بایگانی '" + dc.GetArchive().Title + "'"); } catch { throw new Exception("خطا در ذخیره عملکرد کاربر جاری"); } } dc.Transaction.Commit(); dc.Connection.Close(); } catch { dc.Transaction.Rollback(); dc.Connection.Close(); throw; } finally { if (dc.Connection.State == System.Data.ConnectionState.Open) { dc.Connection.Close(); } } }
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(); } }
public static void Insert(Model.Archive.ArchiveTab archiveTab) { Model.Archive.ArchiveDataClassesDataContext dc = Model.Archive.ArchiveDataClassesDataContext.GetNewInstance(); dc.Connection.Open(); dc.Transaction = dc.Connection.BeginTransaction(); try { archiveTab.Index = dc.ArchiveTabs.Count() == 0 ? 1 : (dc.ArchiveTabs.Select(t => t.Index).Max() + 1); dc.ArchiveTabs.InsertOnSubmit(archiveTab); dc.SubmitChanges(); dc.Transaction.Commit(); dc.Connection.Close(); SqlHelper.CreateTableForArchiveTab(dc, archiveTab); archiveTab.Exist = true; dc.SubmitChanges(); if (archiveTab.TypeCode == (int)Enums.TabTypes.Dossier) { Setting.User.ThisProgram.AddLog(Setting.User.UserOparatesPlaceNames.گروه_اطلاعاتی_پرونده, Setting.User.UserOparatesNames.ثبت, null, "ثبت گروه اطلاعاتی '" + archiveTab.Title + "' در بایگانی '" + dc.GetArchive().Title + "'"); } else { Setting.User.ThisProgram.AddLog(Setting.User.UserOparatesPlaceNames.گروه_اطلاعاتی_سند, Setting.User.UserOparatesNames.ثبت, null, "ثبت گروه اطلاعاتی '" + archiveTab.Title + "' در بایگانی '" + dc.GetArchive().Title + "'"); } } catch (Exception ex) { dc.Transaction.Rollback(); dc.Connection.Close(); throw new Exception("خطا در ثبت اطلاعات" + "\r\n\r\n" + ex.Message); } }
internal static void DeleteField(Model.Archive.ArchiveDataClassesDataContext dc, Model.Common.ArchiveGroupField archiveGroupField) { Model.Archive.ArchiveField originalArchiveField = dc.ArchiveFields.Where(t => t.IDParent == archiveGroupField.ID).Single(); string originalLabel = originalArchiveField.Label; string originalTabTitle = originalArchiveField.ArchiveTab.Title; if (originalArchiveField.IDParent.HasValue) { originalArchiveField.IDParent = null; dc.SubmitChanges(); foreach (var item in dc.ArchiveSubGroupFields.Where(t => t.ArchiveFieldID == originalArchiveField.ID)) { item.IDParent = null; } dc.SubmitChanges(); Model.Common.CounterFieldSetting archiveGroupFieldCounterSetting = Controller.Common.ArchiveGroupFieldController.GetCounterFieldProperties(archiveGroupField.ID); if (archiveGroupFieldCounterSetting != null) { Controller.Archive.ArchiveFieldController.SetCounterFieldProperties(dc, originalArchiveField.ID, archiveGroupFieldCounterSetting.FixedValueType, archiveGroupFieldCounterSetting.FixedValue, archiveGroupFieldCounterSetting.Separator); } } else { SqlHelper.DeleteArchiveField(dc, originalArchiveField); dc.ArchiveSubGroupFields.DeleteAllOnSubmit(originalArchiveField.ArchiveSubGroupFields); dc.SubmitChanges(); dc.CounterFieldSettings.DeleteAllOnSubmit(originalArchiveField.CounterFieldSettings); dc.SubmitChanges(); dc.ArchiveFields.DeleteOnSubmit(originalArchiveField); dc.SubmitChanges(); try { Setting.User.ThisProgram.AddLog(Setting.User.UserOparatesPlaceNames.بایگانی, Setting.User.UserOparatesNames.حذف, null, "حذف فیلد '" + originalLabel + "' در گروه اطلاعاتی '" + originalTabTitle + "' در بایگانی '" + dc.GetArchive().Title + "'"); } catch { throw new Exception("خطا در ذخیره عملکرد کاربر جاری"); } } }
internal static void DeleteField(int archiveFieldID) { Model.Archive.ArchiveDataClassesDataContext dc = new Model.Archive.ArchiveDataClassesDataContext(Setting.Sql.ThisProgram.ArchiveConnection.ConnectionString); dc.Connection.Open(); dc.Transaction = dc.Connection.BeginTransaction(); try { Model.Archive.ArchiveField originalArchiveField = dc.ArchiveFields.Where(t => t.ID == archiveFieldID).Single(); string originalLabel = originalArchiveField.Label; string originalTabTitle = originalArchiveField.ArchiveTab.Title; if (originalArchiveField.IDParent.HasValue) { originalArchiveField.IDParent = null; dc.SubmitChanges(); foreach (var item in dc.ArchiveSubGroupFields.Where(t => t.ArchiveFieldID == originalArchiveField.ID)) { item.IDParent = null; } dc.SubmitChanges(); } else { SqlHelper.DeleteArchiveField(dc, originalArchiveField); dc.ArchiveSubGroupFields.DeleteAllOnSubmit(originalArchiveField.ArchiveSubGroupFields); dc.SubmitChanges(); dc.CounterFieldSettings.DeleteAllOnSubmit(originalArchiveField.CounterFieldSettings); dc.SubmitChanges(); dc.ArchiveFields.DeleteOnSubmit(originalArchiveField); dc.SubmitChanges(); try { Setting.User.ThisProgram.AddLog(Setting.User.UserOparatesPlaceNames.بایگانی, Setting.User.UserOparatesNames.حذف, null, "حذف فیلد '" + originalLabel + "' در گروه اطلاعاتی '" + originalTabTitle + "' در بایگانی '" + dc.GetArchive().Title + "'"); } catch { throw new Exception("خطا در ذخیره عملکرد کاربر جاری"); } } dc.Transaction.Commit(); dc.Connection.Close(); } catch { dc.Transaction.Rollback(); dc.Connection.Close(); throw; } finally { if (dc.Connection.State == System.Data.ConnectionState.Open) { dc.Connection.Close(); } } }
internal static void UpdateField(Model.Archive.ArchiveDataClassesDataContext dc, Model.Common.ArchiveGroupField archiveGroupField) { Model.Archive.ArchiveField originalArchiveField = dc.ArchiveFields.Where(t => t.IDParent == archiveGroupField.ID).Single(); string originalLabel = originalArchiveField.Label; string originalTabTitle = originalArchiveField.ArchiveTab.Title; int originalBoxTypeCode = originalArchiveField.BoxTypeCode; string originalDefaultValue = originalArchiveField.DefaultValue; Model.Archive.ArchiveTab archiveTab = dc.ArchiveTabs.Where(t => t.ID == originalArchiveField.ArchiveTabID).Single(); if (ArchiveFieldController.FieldNameAlreadyExist(dc, archiveTab.ID, archiveGroupField.Label, originalArchiveField.ID)) { throw new Exception(string.Format("فیلد '{0}' در گروه اطلاعاتی '{1}' وجود دارد. لطفا نام دیگری انتخاب کنید", archiveGroupField.Label, archiveTab.Title)); } Model.Archive.ArchiveField archiveField = Model.Archive.ArchiveField.GetNewInstance(originalArchiveField.ID, archiveTab.ID, archiveGroupField.Label, originalArchiveField.FieldName, archiveGroupField.FieldTypeCode, archiveGroupField.StatusCode, archiveGroupField.BoxTypeCode, archiveGroupField.AutoComplete, archiveGroupField.MinLength, archiveGroupField.MaxLength, archiveGroupField.MinValue, archiveGroupField.MaxValue, archiveGroupField.DefaultValue, archiveGroupField.ID, originalArchiveField.Index); Model.Archive.ArchiveField.Copy(originalArchiveField, archiveField); dc.SubmitChanges(); try { Setting.User.ThisProgram.AddLog(Setting.User.UserOparatesPlaceNames.بایگانی, Setting.User.UserOparatesNames.ویرایش, null, "ویرایش فیلد '" + originalLabel + "' در گروه اطلاعاتی '" + originalTabTitle + "' در بایگانی '" + dc.GetArchive().Title + "'"); } catch { throw new Exception("خطا در ذخیره عملکرد کاربر جاری"); } SqlHelper.UpdateArchiveField(dc, originalArchiveField, (Enums.BoxTypes)originalBoxTypeCode, originalDefaultValue); }