internal static void SaveArchivesTrees(Model.Common.ArchiveCommonDataClassesDataContext dc)
        {
            var accessPermissionTreesQuery = dc.AccessPermissionTrees.Where(t => t.Item == Setting.User.ThisProgram.GetAccessPermissionUnitGroupName(Setting.User.AccessPermissionUnits.Archive));

            if (accessPermissionTreesQuery.Count() == 0)
            {
                Model.Common.AccessPermissionTree tree = Model.Common.AccessPermissionTree.GetNewInstance(Setting.User.ThisProgram.GetAccessPermissionUnitGroupName(Setting.User.AccessPermissionUnits.Archive), null, "بایگانی ها", true, false);
                dc.AccessPermissionTrees.InsertOnSubmit(tree);
                dc.SubmitChanges();
            }
            foreach (var item in dc.Archives)
            {
                var query = dc.AccessPermissionTrees.Where(t => t.Item == Setting.User.ThisProgram.GetAccessPermissionUnitGroupName(Setting.User.AccessPermissionUnits.Archive));
                if (query.Count() == 0)
                {
                    Model.Common.AccessPermissionTree tree = Model.Common.AccessPermissionTree.GetNewInstance(Setting.User.ThisProgram.GetAccessPermissionUnitGroupName(Setting.User.AccessPermissionUnits.Archive), null, "بایگانی ها", true, false);
                    dc.AccessPermissionTrees.InsertOnSubmit(tree);
                    dc.SubmitChanges();
                }
                var accessPermissionTreeQuery = dc.AccessPermissionTrees.Where(t => t.Group == Setting.User.ThisProgram.GetAccessPermissionUnitGroupName(Setting.User.AccessPermissionUnits.Archive) && t.Item == item.ID.ToString());
                if (accessPermissionTreeQuery.Count() > 0)
                {
                    Model.Common.AccessPermissionTree originalTree = accessPermissionTreeQuery.Single();
                    Model.Common.AccessPermissionTree tree         = Model.Common.AccessPermissionTree.GetNewInstance(item.ID.ToString(), Setting.User.ThisProgram.GetAccessPermissionUnitGroupName(Setting.User.AccessPermissionUnits.Archive), item.Title, true, false);
                    Model.Common.AccessPermissionTree.Copy(originalTree, tree);
                    dc.SubmitChanges();
                }
                else
                {
                    Model.Common.AccessPermissionTree tree = Model.Common.AccessPermissionTree.GetNewInstance(item.ID.ToString(), Setting.User.ThisProgram.GetAccessPermissionUnitGroupName(Setting.User.AccessPermissionUnits.Archive), item.Title, true, false);
                    dc.AccessPermissionTrees.InsertOnSubmit(tree);
                    dc.SubmitChanges();
                }
            }
        }
Beispiel #2
0
        protected override void SaveUserData(int code, string fullName, string password, string roleCode, string stateCode, bool isGuest, bool isLogin, DateTime?Expire)
        {
            Model.Common.ArchiveCommonDataClassesDataContext dc = new Model.Common.ArchiveCommonDataClassesDataContext(Setting.Sql.ThisProgram.DatabaseConnection.ConnectionString);

            Model.Common.User newInstance = Model.Common.User.GetNewInstance(code, fullName, password, fullName, "", null, roleCode, stateCode, Setting.User.ThisProgram.GetUserVisible(code, true), isGuest, isLogin, Expire, Setting.Program.GetMacAddress().ToString());
            dc.Connection.Open();
            dc.Transaction = dc.Connection.BeginTransaction();
            try
            {
                Model.Common.User.Insert(dc, newInstance);
                dc.SubmitChanges();
                try
                {
                    Setting.User.ThisProgram.AddLog(dc, Setting.User.UserOparatesPlaceNames.کاربران, Setting.User.UserOparatesNames.ثبت, null, "ثبت اطلاعات کاربر با نام '" + newInstance.FullName + "'");
                }
                catch
                {
                    throw new Exception("خطا در ذخیره عملکرد کاربر جاری");
                }
            }
            catch (Exception ex)
            {
                dc.Transaction.Rollback();
                dc.Connection.Close();
                PersianMessageBox.Show(this, "خطا در ثبت اطلاعات" + Environment.NewLine + Environment.NewLine + ex.Message);
                return;
            }
            dc.Transaction.Commit();
            dc.Connection.Close();
        }
        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();
            }
        }
Beispiel #4
0
        protected override void SaveUserData(int code, string fullname, string roleCode, string stateCode, bool _isguest, bool isLogin, DateTime?_Expire)
        {
            Model.Common.ArchiveCommonDataClassesDataContext dc = new Model.Common.ArchiveCommonDataClassesDataContext(Setting.Sql.ThisProgram.DatabaseConnection.ConnectionString);
            Model.Common.User originalMembership = dc.Users.Where(t => t.Code == code).Single();
            string            originalFullName   = originalMembership.FullName;

            Model.Common.User newInstance = Model.Common.User.GetNewInstance(code, fullname, originalMembership.Password, fullname, originalMembership.NikName, originalMembership.LastLogin, roleCode, stateCode, Setting.User.ThisProgram.GetUserVisible(code, true), _isguest, false, _Expire, Setting.Program.GetMacAddress().ToString());
            dc.Connection.Open();
            dc.Transaction = dc.Connection.BeginTransaction();
            try
            {
                Model.Common.User.Copy(originalMembership, newInstance);
                dc.SubmitChanges();
                try
                {
                    Setting.User.ThisProgram.AddLog(dc, Setting.User.UserOparatesPlaceNames.کاربران, Setting.User.UserOparatesNames.ویرایش, null, "ویرایش اطلاعات کاربر با نام '" + originalFullName + "'");
                }
                catch
                {
                    throw new Exception("خطا در ذخیره عملکرد کاربر جاری");
                }
            }
            catch (Exception ex)
            {
                dc.Transaction.Rollback();
                dc.Connection.Close();
                PersianMessageBox.Show(this, "خطا در ثبت اطلاعات" + Environment.NewLine + Environment.NewLine + ex.Message);
                return;
            }
            dc.Transaction.Commit();
            dc.Connection.Close();

            Setting.User.ThisProgram.SetCurrentUser(dc.Users.Where(t => t.Code == Setting.User.ThisProgram.GetCurrentUser <Model.Common.User>().Code).Single());
        }
Beispiel #5
0
 public override void CloseUser()
 {
     Model.Common.ArchiveCommonDataClassesDataContext dc = new Model.Common.ArchiveCommonDataClassesDataContext(Setting.Sql.ThisProgram.DatabaseConnection.ConnectionString);
     Model.Common.User membership = dc.Users.Where(t => t.Code == Setting.User.ThisProgram.GetCurrentUser <Model.Common.User>().Code).Single();
     membership.isLogin   = false;
     membership.IPAddress = Setting.Program.GetMacAddress().ToString();
     dc.SubmitChanges();
 }
Beispiel #6
0
        //private void Form_Shown(object sender, EventArgs e)
        //{
        //    System.Windows.Forms.Form form = sender as System.Windows.Forms.Form;
        //    System.Drawing.Size? size = (form.Tag as System.Drawing.Size?);
        //    form.MinimumSize = size == null ? System.Drawing.Size.Empty : size.Value;
        //    form.Shown -= Form_Shown;
        //}

        public override void SaveFormState(System.Windows.Forms.Form form)
        {
            Model.Common.ArchiveCommonDataClassesDataContext dc = new Model.Common.ArchiveCommonDataClassesDataContext(Setting.Sql.ThisProgram.DatabaseConnection.ConnectionString);
            Model.Common.FormState state = Model.Common.FormState.GetNewInstance(Environment.MachineName, form.Name, (int)form.WindowState, form.Width, form.Height, form.Location.X, form.Location.Y);
            var query = dc.FormStates.Where(t => t.MachineName == Environment.MachineName && t.FormName == form.Name);

            if (query.Count() == 1)
            {
                Model.Common.FormState originalState = query.Single();
                Model.Common.FormState.Copy(originalState, state);
                dc.SubmitChanges();
            }
            else
            {
                Model.Common.FormState.Insert(dc, state);
                dc.SubmitChanges();
            }
        }
Beispiel #7
0
 internal static void UpdateFieldsIndex(Dictionary <int, int> list)
 {
     Model.Common.ArchiveCommonDataClassesDataContext dc = new Model.Common.ArchiveCommonDataClassesDataContext(Setting.Sql.ThisProgram.DatabaseConnection.ConnectionString);
     foreach (var id in list.Keys)
     {
         var item = dc.ArchiveGroupFields.Where(t => t.ID == id).Single();
         item.Index = list[id];
     }
     dc.SubmitChanges();
 }
Beispiel #8
0
        private void BtnSave_Click(object sender, EventArgs e)
        {
            Model.Common.ArchiveCommonDataClassesDataContext dc = new Model.Common.ArchiveCommonDataClassesDataContext(Setting.Sql.ThisProgram.DatabaseConnection.ConnectionString);
            var query = dc.FormStates.Where(t => t.MachineName == Environment.MachineName && t.FormName == "Scanner");

            if (query.Count() == 1)
            {
                query.FirstOrDefault().X      = comboBoxImageType.SelectedIndex;
                query.FirstOrDefault().Y      = comboBoxSource.SelectedIndex;
                query.FirstOrDefault().Width  = cmResolation.SelectedIndex;
                query.FirstOrDefault().Height = cmResolation.SelectedIndex;
                dc.SubmitChanges();
            }
            else
            {
                Model.Common.FormState state = Model.Common.FormState.GetNewInstance(Environment.MachineName, "Scanner", 1, comboBoxImageType.SelectedIndex, comboBoxSource.SelectedIndex, cmResolation.SelectedIndex, cmResolation.SelectedIndex);
                Model.Common.FormState.Insert(dc, state);
                dc.SubmitChanges();
            }

            PersianMessageBox.Show("اطلاعات با موفقیت ذخیره شد.");
        }
Beispiel #9
0
 public void InsertUpdateFormState(Model.Common.FormState model, int type)
 {
     Model.Common.ArchiveCommonDataClassesDataContext db = new Model.Common.ArchiveCommonDataClassesDataContext(Setting.Sql.ThisProgram.DatabaseConnection.ConnectionString);
     if (type == 1)
     {
         db.FormStates.InsertOnSubmit(model);
     }
     else
     {
         var model2 = db.FormStates.Where(a => a.MachineName == model.MachineName && a.FormName == model.FormName).FirstOrDefault();
         model2.Width = model.Width;
     }
     db.SubmitChanges();
 }
Beispiel #10
0
        //مخفی کردن ستون
        private void DossierDocumentsManage2_Click(object sender, EventArgs e)
        {
            //MessageBox.Show(_ColumnName);
            Model.Common.ArchiveCommonDataClassesDataContext dc = new Model.Common.ArchiveCommonDataClassesDataContext(Setting.Sql.ThisProgram.DatabaseConnection.ConnectionString);
            var query = dc.FormStates.Where(t => t.MachineName == Environment.MachineName && t.FormName == _ColumnName);

            if (query.Count() == 1)
            {
                if (query.FirstOrDefault().WindowState == 20)
                {
                    query.FirstOrDefault().WindowState = 9;
                    dc.SubmitChanges();
                }
            }
            else
            {
                //برای مخفی کردن باید Windowsstate=9
                //برای مخفی نکردن باید Windowsstate=20
                Model.Common.FormState state = Model.Common.FormState.GetNewInstance(Environment.MachineName, _ColumnName, 9, 0, 0, 0, 0);
                Model.Common.FormState.Insert(dc, state);
                dc.SubmitChanges();
            }
        }
 internal static bool Insert(Model.Common.MessageUser model)
 {
     try
     {
         Model.Common.ArchiveCommonDataClassesDataContext db = new Model.Common.ArchiveCommonDataClassesDataContext(Setting.Sql.ThisProgram.DatabaseConnection.ConnectionString);
         db.MessageUsers.InsertOnSubmit(model);
         db.SubmitChanges();
         return(true);
     }
     catch
     {
         return(false);
     }
 }
 internal static bool Insert(Model.Common.VersionClient model)
 {
     try
     {
         model.ClientIP = NjitSoftware.Setting.Program.GetMacAddress();
         Model.Common.ArchiveCommonDataClassesDataContext db = new Model.Common.ArchiveCommonDataClassesDataContext(Setting.Sql.ThisProgram.DatabaseConnection.ConnectionString);
         db.VersionClients.InsertOnSubmit(model);
         db.SubmitChanges();
         return(true);
     }
     catch
     {
         return(false);
     }
 }
 private void btnOK_Click(object sender, EventArgs e)
 {
     Model.Common.ArchiveCommonDataClassesDataContext sdc = new Model.Common.ArchiveCommonDataClassesDataContext(Setting.Sql.ThisProgram.DatabaseConnection.ConnectionString);
     try
     {
         Model.Common.User member = sdc.Users.Where(t => t.Code == Convert.ToInt32(cmUsers.SelectedValue)).Single();
         member.Password = HashData(member.Code.ToString() + "1234");
         sdc.SubmitChanges();
         Setting.User.ThisProgram.AddLog(sdc, Setting.User.UserOparatesPlaceNames.تغییر_رمز_عبور, Setting.User.UserOparatesNames.ویرایش, null, ": تغییر رمز عبور  کاربر '" + member.FullName + " توسط : " + Setting.User.ThisProgram.GetCurrentUser <Model.Common.User>().FullName + "'");
         MessageBox.Show("پسورد کاربر مورد نظر به '1234' تغییر پیدا کرد");
     }
     catch (Exception ex)
     {
         PersianMessageBox.Show(this, "خطا در ثبت اطلاعات" + "\r\n\r\n" + ex.Message);
     }
 }
 internal static bool Update(Model.Common.SearchBoxSetting s)
 {
     try
     {
         Model.Common.ArchiveCommonDataClassesDataContext db = new Model.Common.ArchiveCommonDataClassesDataContext(Setting.Sql.ThisProgram.DatabaseConnection.ConnectionString);
         var sbs = db.SearchBoxSettings.Where(a => a.ID == s.ID).FirstOrDefault();
         sbs.ArchiveSelected           = s.ArchiveSelected;
         sbs.ArchiveFieldSelectedIndex = s.ArchiveFieldSelectedIndex;
         sbs.ConditionIdSelectedIndex  = s.ConditionIdSelectedIndex;
         db.SubmitChanges();
         return(true);
     }
     catch
     {
         return(false);
     }
 }
Beispiel #15
0
        public void AddLog(Model.Common.ArchiveCommonDataClassesDataContext dc, UserOparatesPlaceNames operatingPlaceCode, UserOparatesNames operatingCode, string code, string description)
        {
            int userCode = Setting.User.ThisProgram.GetCurrentUser <Model.Common.User>().Code;

            var des = GetUserLogCryptoService(userCode);

            string code_encrypted = ((code == null) ? null : des.EncryptToBase64(code));
            string operatingPlaceCode_encrypted = ((operatingPlaceCode == UserOparatesPlaceNames.None) ? null : des.EncryptToBase64(((short)operatingPlaceCode).ToString()));
            string operatingCode_encrypted      = des.EncryptToBase64(((short)operatingCode).ToString());
            string sysdate_encrypted            = des.EncryptToBase64(DataAccess.CommonDataAccess.GetNewInstance().Connection.GetServerPersianDate());
            string systime_encrypted            = des.EncryptToBase64(DataAccess.CommonDataAccess.GetNewInstance().Connection.GetServerTime());
            string description_encrypted        = ((description == null) ? null : des.EncryptToBase64(description));

            Model.Common.UserLog userlog = Model.Common.UserLog.GetNewInstance(userCode, operatingPlaceCode_encrypted, operatingCode_encrypted, code_encrypted, description_encrypted, sysdate_encrypted, systime_encrypted, Setting.Archive.ThisProgram.SelectedArchiveTree == null ? null : (int?)Setting.Archive.ThisProgram.SelectedArchiveTree.Archive.ID, Setting.Program.GetMacAddress().ToString());
            Model.Common.UserLog.Insert(dc, userlog);
            dc.SubmitChanges();

            ProgramEvents.OnUserLogsChanged();
        }
        internal static bool Insert(int archivefieldselectedindex, int conditionselectedindex)
        {
            try
            {
                Model.Common.ArchiveCommonDataClassesDataContext db = new Model.Common.ArchiveCommonDataClassesDataContext(Setting.Sql.ThisProgram.DatabaseConnection.ConnectionString);
                int userCode = Setting.User.ThisProgram.GetCurrentUser <Model.Common.User>().Code;

                int ArchiveId = (int)EnumArchives.Student;
                try
                {
                    ArchiveId = Convert.ToInt32(Setting.Archive.ThisProgram.SelectedArchiveTree.ArchiveID);
                }
                catch
                {
                    ArchiveId = (int)EnumArchives.Student;
                }
                Model.Common.SearchBoxSetting sbs = db.SearchBoxSettings.Where(q => q.UserCode == userCode && q.ArchiveSelected == ArchiveId).FirstOrDefault();
                if (sbs == null)
                {
                    sbs = new Model.Common.SearchBoxSetting();
                    sbs.ArchiveSelected           = ArchiveId;
                    sbs.UserCode                  = userCode;
                    sbs.ArchiveFieldSelectedIndex = archivefieldselectedindex;
                    sbs.ConditionIdSelectedIndex  = conditionselectedindex;
                    db.SearchBoxSettings.InsertOnSubmit(sbs);
                    db.SubmitChanges();
                    return(true);
                }
                else
                {
                    sbs.ArchiveSelected           = ArchiveId;
                    sbs.ArchiveFieldSelectedIndex = archivefieldselectedindex;
                    sbs.ConditionIdSelectedIndex  = conditionselectedindex;
                    return(Update(sbs));
                }
            }
            catch
            {
                return(false);
            }
        }
Beispiel #17
0
 public void SaveAndReloadCommonSettings(Model.Common.ProgramSetting instance)
 {
     try
     {
         Model.Common.ArchiveCommonDataClassesDataContext dc = new Model.Common.ArchiveCommonDataClassesDataContext(Setting.Sql.ThisProgram.DatabaseConnection.ConnectionString);
         var query = dc.ProgramSettings.Select(t => t);
         if (query.Count() > 0)
         {
             Model.Common.ProgramSetting original = query.First();
             Model.Common.ProgramSetting.Copy(original, instance);
         }
         else
         {
             Model.Common.ProgramSetting.Insert(dc, instance);
         }
         dc.SubmitChanges();
     }
     catch (Exception ex)
     {
         throw new Exception("خطا در ذخیره تنظیمات" + "\r\n\r\n" + ex.Message);
     }
     LoadCommonSettings();
 }
Beispiel #18
0
        bool ChangeCurrentUserPassword(string currentPassword, string newPassword)
        {
            Model.Common.ArchiveCommonDataClassesDataContext sdc = new Model.Common.ArchiveCommonDataClassesDataContext(Setting.Sql.ThisProgram.DatabaseConnection.ConnectionString);
            int count = sdc.Users.Where(t => t.Code == Setting.User.ThisProgram.GetCurrentUser <Model.Common.User>().Code&& t.Password == HashData(currentPassword)).Count();

            if (count == 0)
            {
                return(false);
            }
            try
            {
                Model.Common.User member = sdc.Users.Where(t => t.Code == Setting.User.ThisProgram.GetCurrentUser <Model.Common.User>().Code).Select(t => t).Single();
                member.Password = HashData(newPassword);
                Setting.User.ThisProgram.AddLog(sdc, Setting.User.UserOparatesPlaceNames.تغییر_رمز_عبور, Setting.User.UserOparatesNames.ویرایش, null, ": تغییر رمز عبور توسط '" + Setting.User.ThisProgram.GetCurrentUser <Model.Common.User>().FullName + "'");
                sdc.SubmitChanges();
            }
            catch (Exception ex)
            {
                PersianMessageBox.Show(this, "خطا در ثبت اطلاعات" + "\r\n\r\n" + ex.Message);
                return(false);
            }
            return(true);
        }
 internal static bool UpdateState(long id)
 {
     try
     {
         Model.Common.ArchiveCommonDataClassesDataContext db = new Model.Common.ArchiveCommonDataClassesDataContext(Setting.Sql.ThisProgram.DatabaseConnection.ConnectionString);
         var message = db.MessageUsers.Where(a => a.ID == id).FirstOrDefault();
         if (message.State == (int)Enums.StateTypeMessage.خوانده_نشده)
         {
             message.State    = (int)Enums.StateTypeMessage.خوانده_شده;
             message.DateShow = DateTime.Now;
             db.SubmitChanges();
             return(true);
         }
         else
         {
             return(false);
         }
     }
     catch
     {
         return(false);
     }
 }
Beispiel #20
0
 //بازیابی ستون
 private void DossierDocumentsManage3_Click(object sender, EventArgs e)
 {
     for (int j = 1; j <= radGridViewAll.ColumnCount; j++)
     {
         //نمایش تمام ستون های جدول
         Model.Common.ArchiveCommonDataClassesDataContext dc = new Model.Common.ArchiveCommonDataClassesDataContext(Setting.Sql.ThisProgram.DatabaseConnection.ConnectionString);
         var query = dc.FormStates.Where(t => t.MachineName == Environment.MachineName && t.FormName == radGridViewAll.Columns[j - 1].FieldName);
         if (query.Count() == 1)
         {
             //برای مخفی کردن باید Windowsstate=9
             //برای مخفی نکردن باید Windowsstate=20
             query.FirstOrDefault().WindowState = 20;
             //منظور از ایگرگ همان ایندکس است
             query.FirstOrDefault().Y = j;
             query.FirstOrDefault().X = j;
             dc.SubmitChanges();
         }
     }
     for (int i = 0; i < radGridViewAll.ColumnCount; i++)
     {
         radGridViewAll.Columns[i].IsVisible = true;
     }
 }
Beispiel #21
0
        //internal void StartCheckLock()
        //{
        //    System.ComponentModel.BackgroundWorker backgroundWorker = new BackgroundWorker();
        //    backgroundWorker.DoWork += backgroundWorker_DoWork;
        //    backgroundWorker.RunWorkerCompleted += backgroundWorker_RunWorkerCompleted;
        //    backgroundWorker.RunWorkerAsync();
        //}

        //private void backgroundWorker_DoWork(object sender, DoWorkEventArgs e)
        //{
        //    CheckLock();
        //}

        //private void backgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        //{
        //    if (e.Error != null)
        //    {
        //        if (e.Error is Njit.Common.CheckLockException)
        //        {
        //            PersianMessageBox.Show(this, "خطا" + "\r\n" + e.Error.Message);
        //            Setting.Program.ThisProgram.ShowExitDialog = false;
        //            this.Close();
        //            return;
        //        }
        //        else
        //        {
        //            PersianMessageBox.Show(this, "خطا در بررسی قفل سخت افزاری");
        //            Setting.Program.ThisProgram.ShowExitDialog = false;
        //            this.Close();
        //            return;
        //        }
        //    }
        //    else if (e.Cancelled)
        //    {
        //        PersianMessageBox.Show(this, "خطا در بررسی قفل سخت افزاری");
        //        Setting.Program.ThisProgram.ShowExitDialog = false;
        //        this.Close();
        //        return;
        //    }
        //}

        //private void CheckLock()
        //{
        //    string fileName = "Tiny.ocx";
        //    if (!System.IO.File.Exists(fileName))
        //        fileName = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(Application.ExecutablePath), "Tiny.ocx");
        //    if (!System.IO.File.Exists(fileName))
        //        throw new Njit.Common.CheckLockException(-1000);
        //    Njit.Common.CryptoService.MD5CryptoService md5 = new Njit.Common.CryptoService.MD5CryptoService();
        //    //if (md5.GetFileMD5(fileName) != "TJKM9pyOg+//raCCvG2UNw==")
        //    //    throw new Njit.Common.CheckLockException(-1001);
        //    TINYLib.TinyPlusCtrl tiny = new TINYLib.TinyPlusCtrl();
        //    short errorCode = 0;
        //    if (Njit.Common.PublicMethods.ServerIsLocal(Setting.Sql.ThisProgram.LockServer))
        //    {
        //        errorCode = tiny.FindFirstTPlus("6D2F77838D67E3BCC7C3261C737B9FF", "0F53C9F493D977FBA6453434FE9DB895D75F7A0FC33BF180AFEE569CBB4AAFD75D780B92CA40537EF068AEB15CBBE3697827", "AF4F19087B09B94B648D9E3EC0EB223C8C1A13308DCD8F68597F1F5D4C43737BC93417783EBEE91E9569EBD841258B17CCB1");
        //    }
        //    else
        //    {
        //        errorCode = tiny.FindNetTPlus(Setting.Sql.ThisProgram.LockServer, "6D2F77838D67E3BCC7C3261C737B9FF");
        //    }
        //    if (errorCode != 0)
        //        throw new Njit.Common.CheckLockException(errorCode);
        //    string[] request = new string[20] { "E81E98ABBAA0A842610C", "1666C4E3F2EE469CAF4A", "5F370D283B9547B75265", "1747C5D4F3054B33DEE1", "EF479DAC4BCB41F98A9D", "CD43FB8AA998E8627510", "9B13BD58075AD20837D2", "59A91718C7BAE2687B26", "B2CE60730296C6445772", "F767A5B453CF33E18CAB", "4C446E0D1CEA46984756", "E74F95B05FE53595A443", "2252D0FF9A3961E9F8A7", "1B4FCBDAF92C50DAF988", "D43E84A34E9D57BF5A79", "BFE76D7C0F8C50BA596A", "DD578BB655423A70032E", "3048D2F19C786C36D5E4", "7AE2283BE648F8060934", "204CC2E1F0F377A14C5F" };
        //    string[] response = new string[20] { "72E8724B644747352003", "954DF7E2D97F2F5D5843", "AE1E103B3230065E0940", "C2FA849BBEB5FBFB98B9", "5ECE80B7E2D95BDB3247", "199717F0D54F871514F7", "7202A0CB2624B4E2DFCC", "FC74BED39E4484021BD8", "5C883A33EC15ED776E59", "A21A647B1E99C57F7455", "6B6B59C4BB7420722F48", "920254772A94EC546B0E", "EC048AA7548B3BCBE40D", "67A32740258460DEC740", "D77537227D70BE9EC9F4", "8E6EF0E71E2460FE675E", "29ABE7DCC10CDC2AE300", "B727A590731125E78EC5", "0484C2DB980199D7DAF5", "C72BB5A0977D093F3449" };
        //    Random r = new Random((int)DateTime.Now.Ticks);
        //    int i = r.Next(20);
        //    if (tiny.GetTPlusQuery(request[i]) != response[i])
        //        throw new Njit.Common.CheckLockException(-1);
        //    string spid = tiny.GetTPlusData(TINYLib.EnumTPlusData.TPLUS_SPECIALID);
        //    if (spid != "SAM@MOJ!15153030")
        //        throw new Njit.Common.CheckLockException(-1003);
        //    string data = tiny.GetTPlusData(TINYLib.EnumTPlusData.TPLUS_DATAPARTITION);
        //    string exDate = Njit.Common.PublicMethods.GetStringData(data, "exd:", ';');
        //    if (!string.IsNullOrEmpty(exDate))
        //    {
        //        TimeSpan timeSpan = Njit.Common.PersianCalendar.ToDateTime(exDate).Subtract(DateTime.Now);
        //        if (timeSpan.TotalDays <= 0)
        //            throw new Njit.Common.CheckLockException(-1002);
        //    }
        //    //else if (string.IsNullOrEmpty(exDate))
        //    //    throw new Njit.Common.CheckLockException(-1002);
        //}

        protected override void OnFormClosed(FormClosedEventArgs e)
        {
            base.OnFormClosed(e);

            if (Setting.User.ThisProgram.GetCurrentUser <Model.Common.User>() != null)
            {
                Setting.User.ThisProgram.AddLog(Setting.User.UserOparatesPlaceNames.None, Setting.User.UserOparatesNames.خروج_از_برنامه, null, null);
                Model.Common.ArchiveCommonDataClassesDataContext dc = new Model.Common.ArchiveCommonDataClassesDataContext(Setting.Sql.ThisProgram.DatabaseConnection.ConnectionString);
                Model.Common.User membership = dc.Users.Where(t => t.Code == Setting.User.ThisProgram.GetCurrentUser <Model.Common.User>().Code).Single();
                membership.isLogin   = false;
                membership.IPAddress = Setting.Program.GetMacAddress().ToString();

                dc.SubmitChanges();
            }
            try
            {
                Setting.Program.ThisProgram.SetLastRunDate();
            }
            catch (Exception ex)
            {
                PersianMessageBox.Show(this, "خطا در ذخیره تنظیمات" + "\r\n\r\n" + ex.Message);
            }
        }
Beispiel #22
0
        private void radGridViewExtended1_DoubleClick(object sender, EventArgs e)
        {
            string PessonelNumber = "";
            int    ID             = 0;

            foreach (Telerik.WinControls.UI.GridViewRowInfo item in radGridViewExtended1.SelectedRows)
            {
                PessonelNumber = item.Cells[1].Value.ToString();
                try
                {
                    ID = Convert.ToInt32(item.Cells[0].Value.ToString());
                }
                catch (Exception ex) {
                    MessageBox.Show(ex.Message);
                    return;
                }
            }
            if (PessonelNumber != "")
            {
                var dialogResult = PersianMessageBox.Show(this, "مایل به مشاهده پرونده : " + PessonelNumber + " هستید؟", "تایید ", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1);
                if (dialogResult == System.Windows.Forms.DialogResult.Yes)
                {
                    Model.Common.ArchiveCommonDataClassesDataContext dc = new Model.Common.ArchiveCommonDataClassesDataContext(Setting.Sql.ThisProgram.DatabaseConnection.ConnectionString);
                    var df = dc.DocumentsFailures.Where(q => q.ID == ID).FirstOrDefault();
                    if (df != null)
                    {
                        df.isRead      = true;
                        df.DateChecker = System.DateTime.Now;
                        df.Userchecker = Setting.User.ThisProgram.GetCurrentUser <Model.Common.User>().Code;
                        dc.SubmitChanges();
                    }
                    else
                    {
                        return;
                    }
                    Model.Common.User currentUser = Setting.User.ThisProgram.GetCurrentUser <Model.Common.User>();
                    if (currentUser != null)
                    {
                        if (IsMembershipInAdministartorRole(currentUser))
                        {
                            using (View.ArchiverDocumentManagement f = new ArchiverDocumentManagement(PessonelNumber, 0))
                            {
                                f.ShowDialog();
                            }
                        }
                        else if (Setting.User.ThisProgram.CheckUserAccessPermission(currentUser, "ArchiverDocumentManagement", null))
                        {
                            using (View.ArchiverDocumentManagement f = new ArchiverDocumentManagement(PessonelNumber, 0))
                            {
                                f.ShowDialog();
                            }
                        }
                        else if (Setting.User.ThisProgram.CheckUserAccessPermission(currentUser, "ArchiveDocumentShow", null))
                        {
                            using (View.ArchiveDocumentShow f = new ArchiveDocumentShow(PessonelNumber, 0))
                            {
                                f.ShowDialog();
                            }
                        }
                    }
                }
            }
        }
        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();
            }
        }
Beispiel #24
0
        public override bool Login()
        {
            List <string> list = new List <string>();

            list.Add(View.Main.Instance.Name);
            if (!View.SplashScreen.InstanceIsNull)
            {
                list.Add(View.SplashScreen.Instance.Name);
            }
            //list.Add(UI.SelectArchive.Instance.Name);
            this.CloseForms(list.ToArray());
            System.Windows.Forms.DialogResult result;
            using (View.Login login = new View.Login())
            {
                result = login.ShowDialog();
            }
            if (result == System.Windows.Forms.DialogResult.OK)
            {
                Model.Common.ArchiveCommonDataClassesDataContext dc = new Model.Common.ArchiveCommonDataClassesDataContext(Setting.Sql.ThisProgram.DatabaseConnection.ConnectionString);
                Model.Common.User membership = dc.Users.Where(t => t.Code == Setting.User.ThisProgram.GetCurrentUser <Model.Common.User>().Code).Single();
                membership.LastLogin = DateTime.Now;
                if (membership.isGuest)
                {
                    try
                    {
                        DateTime Expire = Convert.ToDateTime(membership.Expire);
                        DateTime Today  = ConvertTo_PersianOREnglish_Date.GetEglishDate(DataAccess.CommonDataAccess.GetNewInstance().Connection.GetServerPersianDate());
                        if (Today >= Expire)
                        {
                            membership.Visible = Options.SettingInitializer.GetUserSetting().HashData(membership.Code.ToString() + (int)Njit.Program.Setting.UserSetting.UserStates.Inactive);
                            dc.SubmitChanges();
                            MessageBox.Show("تاریخ انقضا پنل کاربری شما به اتمام رسیده است.");
                            Logout();
                        }
                    }
                    catch
                    {
                        MessageBox.Show("تاریخ انقضا پنل کاربری شما در سیستم درست وارد نشده است. به مدیر سیستم اطلاع داده تا تاریخ انقضا پنل کاربریتان را تغییر بدهد. ");
                    }
                }
                //اگر ادمین باشد نیازی نیست
                if (!Setting.User.ThisProgram.IsMembershipInAdministartorRole(Setting.User.ThisProgram.GetCurrentUser <Model.Common.User>()))
                {
                    if (membership.isLogin == true && membership.IPAddress == null)
                    {
                        MessageBox.Show(" با اطلاعات وارد شده یک کاربر دیگر وجود دارد در غیر اینصورت از مدیر سیستم بخواهید تا اطلاعات شما را ویرایش کند.");
                        Logout();
                    }

                    if (membership.isLogin == true && membership.IPAddress != Setting.Program.GetMacAddress().ToString())
                    {
                        MessageBox.Show(" با اطلاعات وارد شده یک کاربر دیگر وجود دارد در غیر اینصورت از مدیر سیستم بخواهید تا اطلاعات شما را ویرایش کند.");
                        Logout();
                    }
                }

                membership.IPAddress = Setting.Program.GetMacAddress().ToString();
                membership.isLogin   = true;
                dc.SubmitChanges();

                AddLog(dc, UserOparatesPlaceNames.None, UserOparatesNames.ورود_به_سیستم, null, null);

                if (View.SelectArchive.Instance.Visible == false)
                {
                    View.SelectArchive.Instance.Show(View.Main.Instance);
                }
                this.Load();

                //View.Main.Instance.StartCheckLock();

                return(true);
            }
            return(false);
        }
        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();
            }
        }
Beispiel #26
0
        private void btnOK_Click(object sender, EventArgs e)
        {
            if (!(btnOK.Focused || nameTextBox.Focused))
            {
                Njit.Common.SendKeys.SendKeyDown(Keys.Tab);
                return;
            }
            try
            {
                ValidateContent();
            }
            catch (Njit.Common.ValidateException ex)
            {
                ex.Control.TextChanged -= ControlTextChanged;
                PersianMessageBox.Show(ex.Message);
                ex.Control.Focus();
                ex.Control.TextChanged += ControlTextChanged;
                errorProvider.SetError(ex.Control, ex.Message);
                return;
            }
            Model.Common.ArchiveCommonDataClassesDataContext dc = new Model.Common.ArchiveCommonDataClassesDataContext(Setting.Sql.ThisProgram.DatabaseConnection.ConnectionString);

            Model.Common.UserRole newInstance = Model.Common.UserRole.GetNewInstance(nameTextBox.Text, false);
            dc.Connection.Open();
            dc.Transaction = dc.Connection.BeginTransaction();
            try
            {
                if (!EditMode)
                {
                    Model.Common.UserRole.Insert(dc, newInstance);
                    dc.SubmitChanges();
                    try
                    {
                        Setting.User.ThisProgram.AddLog(dc, Setting.User.UserOparatesPlaceNames.کاربران, Setting.User.UserOparatesNames.ثبت, null, "ثبت گروه کاربران '" + newInstance.Name + "'");
                    }
                    catch
                    {
                        throw new Exception("خطا در ذخیره عملکرد کاربر جاری");
                    }
                }
                else
                {
                    Model.Common.UserRole originalInstance = dc.UserRoles.Where(t => t.ID == this.OriginalUserRole.ID).Single();
                    string originalName = originalInstance.Name;
                    Model.Common.UserRole.Copy(originalInstance, newInstance);
                    dc.SubmitChanges();
                    try
                    {
                        Setting.User.ThisProgram.AddLog(dc, Setting.User.UserOparatesPlaceNames.کاربران, Setting.User.UserOparatesNames.ویرایش, null, "ویرایش گروه کاربران '" + originalName + "'");
                    }
                    catch
                    {
                        throw new Exception("خطا در ذخیره عملکرد کاربر جاری");
                    }
                }
            }
            catch (Exception ex)
            {
                dc.Transaction.Rollback();
                dc.Connection.Close();
                PersianMessageBox.Show(this, "خطا در ثبت اطلاعات" + Environment.NewLine + Environment.NewLine + ex.Message);
                return;
            }
            dc.Transaction.Commit();
            dc.Connection.Close();

            ProgramEvents.OnUserRolesChanged();

            if (EditMode)
            {
                this.DialogResult = System.Windows.Forms.DialogResult.OK;
                this.Close();
            }
            else
            {
                PersianMessageBox.Show(this, "اطلاعات ثبت شد");
                Model.Common.UserRole.Copy(this.UserRole, Model.Common.UserRole.GetNewInstance("", false));
                nameTextBox.Focus();
            }
        }
Beispiel #27
0
        internal static void SetCounterFieldProperties(int archiveGroupFieldID, int fixedValueType, string fixedValue, string separator)
        {
            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();
                int archiveGroupTabID = commonDataContext.ArchiveGroupFields.Where(t => t.ID == archiveGroupFieldID).Single().ArchiveGroupTabID;

                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);
                }

                if (commonDataContext.CounterFieldSettings.Where(t => t.ArchiveGroupFieldID == archiveGroupFieldID).Count() > 0)
                {
                    Model.Common.CounterFieldSetting obj = commonDataContext.CounterFieldSettings.Where(t => t.ArchiveGroupFieldID == archiveGroupFieldID).Single();
                    obj.FixedValueType = fixedValueType;
                    obj.FixedValue     = fixedValue;
                    obj.Separator      = separator;
                    commonDataContext.SubmitChanges();
                }
                else
                {
                    Model.Common.CounterFieldSetting obj = Model.Common.CounterFieldSetting.GetNewInstance(archiveGroupFieldID, fixedValueType, fixedValue, separator);
                    commonDataContext.CounterFieldSettings.InsertOnSubmit(obj);
                    commonDataContext.SubmitChanges();
                }

                foreach (var dcArchive in archivesDataContext)
                {
                    int archiveFieldID = dcArchive.ArchiveFields.Where(t => t.IDParent == archiveGroupFieldID).Single().ID;
                    Controller.Archive.ArchiveFieldController.SetCounterFieldProperties(dcArchive, archiveFieldID, fixedValueType, fixedValue, separator);
                }

                commonDataContext.Transaction.Commit();
                foreach (var dcArchive in archivesDataContext)
                {
                    dcArchive.Transaction.Commit();
                }
            }
            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();
                }
            }
        }
        public static void Delete(int ID)
        {
            List <System.Data.Common.DbTransaction>            archivesTransactions = new List <System.Data.Common.DbTransaction>();
            List <Model.Archive.ArchiveDataClassesDataContext> archivesDataContexts = new List <Model.Archive.ArchiveDataClassesDataContext>();

            Model.Common.ArchiveCommonDataClassesDataContext archiveCommonDc = new Model.Common.ArchiveCommonDataClassesDataContext(Setting.Sql.ThisProgram.DatabaseConnection.ConnectionString);
            archiveCommonDc.Connection.Open();
            archiveCommonDc.Transaction = archiveCommonDc.Connection.BeginTransaction();
            try
            {
                foreach (string SqlConnection in GetArchivesConnectionStrings(ID))
                {
                    Model.Archive.ArchiveDataClassesDataContext dcArchive = new Model.Archive.ArchiveDataClassesDataContext(SqlConnection);
                    dcArchive.Connection.Open();

                    archivesDataContexts.Add(dcArchive);
                    archivesTransactions.Add(dcArchive.Connection.BeginTransaction());

                    dcArchive.Transaction = archivesTransactions[archivesTransactions.Count - 1];

                    Model.Archive.ArchiveTab archiveTab = dcArchive.ArchiveTabs.Where(t => t.IDParent == ID).Single();
                    archiveTab.IDParent = null;

                    List <Model.Archive.ArchiveField> archiveFields = dcArchive.ArchiveFields.Where(t => t.ArchiveTabID == archiveTab.ID).ToList();
                    foreach (Model.Archive.ArchiveField item in archiveFields)
                    {
                        item.IDParent = null;
                    }

                    dcArchive.SubmitChanges();
                }

                var    originalArchiveGroupTab   = archiveCommonDc.ArchiveGroupTabs.Where(t => t.ID == ID).Single();
                string originalTitle             = originalArchiveGroupTab.Title;
                string originalArchiveGroupTitle = originalArchiveGroupTab.ArchiveGroup.Title;
                int    originalTypeCode          = originalArchiveGroupTab.TypeCode;

                Model.Common.ArchiveGroupTab.Delete(archiveCommonDc, originalArchiveGroupTab);
                archiveCommonDc.SubmitChanges();

                try
                {
                    if (originalTypeCode == (int)Enums.TabTypes.Dossier)
                    {
                        Setting.User.ThisProgram.AddLog(archiveCommonDc, Setting.User.UserOparatesPlaceNames.گروه_اطلاعاتی_پرونده, Setting.User.UserOparatesNames.ثبت, null, "حذف گروه اطلاعاتی '" + originalTitle + "' از گروه بایگانی '" + originalArchiveGroupTitle + "'");
                    }
                    else
                    {
                        Setting.User.ThisProgram.AddLog(archiveCommonDc, Setting.User.UserOparatesPlaceNames.گروه_اطلاعاتی_سند, Setting.User.UserOparatesNames.ثبت, null, "حذف گروه اطلاعاتی '" + originalTitle + "' از گروه بایگانی '" + originalArchiveGroupTitle + "'");
                    }
                }
                catch
                {
                    throw new Exception("خطا در ذخیره عملکرد کاربر جاری");
                }

                foreach (System.Data.Common.DbTransaction DbTransaction in archivesTransactions)
                {
                    DbTransaction.Commit();
                }
                archiveCommonDc.Transaction.Commit();
            }
            catch (Exception ex)
            {
                foreach (System.Data.Common.DbTransaction DbTransaction in archivesTransactions)
                {
                    DbTransaction.Rollback();
                }
                archiveCommonDc.Transaction.Rollback();
                throw new Exception("خطا در حذف گروه اطلاعاتی" + "\r\n\r\n" + ex.Message);
            }
            finally
            {
                foreach (Model.Archive.ArchiveDataClassesDataContext dcArchive in archivesDataContexts)
                {
                    dcArchive.Connection.Close();
                }
                archiveCommonDc.Connection.Close();
            }
        }
Beispiel #29
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();
                }
            }
        }
Beispiel #30
0
        internal static void DeleteField(int archiveGroupFieldID, int archiveGroupTabID)
        {
            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);
                }

                Model.Common.ArchiveGroupField originalArchiveGroupField = commonDataContext.ArchiveGroupFields.Where(t => t.ID == archiveGroupFieldID).Single();
                string originalLabel    = originalArchiveGroupField.Label;
                string originalTabTitle = originalArchiveGroupField.ArchiveGroupTab.Title;

                foreach (var dc in archivesDataContext)
                {
                    Controller.Archive.ArchiveFieldController.DeleteField(dc, originalArchiveGroupField);
                }

                commonDataContext.CounterFieldSettings.DeleteAllOnSubmit(commonDataContext.CounterFieldSettings.Where(t => t.ArchiveGroupFieldID == originalArchiveGroupField.ID));
                commonDataContext.SubmitChanges();

                commonDataContext.ArchiveGroupFields.DeleteOnSubmit(originalArchiveGroupField);
                commonDataContext.SubmitChanges();

                try
                {
                    Setting.User.ThisProgram.AddLog(commonDataContext, Setting.User.UserOparatesPlaceNames.گروه_بایگانی, Setting.User.UserOparatesNames.حذف, null, "حذف فیلد '" + originalLabel + "' از گروه اطلاعاتی '" + originalTabTitle + "'");
                }
                catch
                {
                    throw new Exception("خطا در ذخیره عملکرد کاربر جاری");
                }

                commonDataContext.Transaction.Commit();
                foreach (var dcArchive in archivesDataContext)
                {
                    dcArchive.Transaction.Commit();
                }
            }
            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();
                }
            }
        }