コード例 #1
0
        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();
                }
            }
        }
コード例 #2
0
        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("خطا در ذخیره عملکرد کاربر جاری");
            }
        }
コード例 #3
0
        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();
                }
            }
        }
コード例 #4
0
 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 + "'");
     }
 }
コード例 #5
0
        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();
                }
            }
        }
コード例 #6
0
        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();
            }
        }
コード例 #7
0
        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);
            }
        }
コード例 #8
0
        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("خطا در ذخیره عملکرد کاربر جاری");
                }
            }
        }
コード例 #9
0
        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();
                }
            }
        }
コード例 #10
0
        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);
        }