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);
     }
 }
Example #5
0
 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)));
             }
         }
     }
 }
Example #6
0
 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();
            }
        }
Example #12
0
        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();
                }
            }
        }