Beispiel #1
0
        private void LoadContactInfo(Model.Archive.Dossier dossier)
        {
            if (!Setting.Archive.ThisProgram.LoadedArchiveSettings.InfoGroupTab)
            {
                return;
            }

            List <Model.Archive.ContactView> contactView = Controller.Archive.ContactController.Select(dossier.PersonnelNumber);

            contactViewBindingSource.DataSource = contactView;

            List <Model.Archive.AddressView> addressView = Controller.Archive.AddressController.Select(dossier.PersonnelNumber);

            addressViewBindingSource.DataSource = addressView;

            Model.Archive.Info info = Controller.Archive.InfoController.Select(dossier.PersonnelNumber);
            if (info.IsNullOrEmpty())
            {
                txtComment.Text = null;
                txtEmail.Text   = null;
                txtWebsite.Text = null;
                return;
            }
            txtComment.Text = info.Comment;
            txtEmail.Text   = info.Email;
            txtWebsite.Text = info.Website;
        }
Beispiel #2
0
        private bool LoadPersonnelInfo(string personelNumber)
        {
            this.SelectedDossier = Controller.Archive.DossierController.Select(personelNumber);
            if (!this.SelectedDossier.IsNullOrEmpty())
            {
                if (!isAccessPermission(this.SelectedDossier))
                {
                    PersianMessageBox.Show(this, string.Format("مجوز دسترسی به پرونده های با سطح دسترسی '{0}' برای شما صادر نشده است", this.SelectedDossier.DossierType.Title));
                    this.SelectedDossier = null;
                    EnableOrDisableThisForm(false, true);
                    return(false);
                }
            }
            else
            {
                EnableOrDisableThisForm(false, true);
                return(false);
            }
            dossierTypeComboBoxExtended.SelectedItem = dossierTypeComboBoxExtended.Items.Cast <Njit.Program.Controls.ComboBoxExtended.CustomItem>().Where(t => (int)t.Value == this.SelectedDossier.DossierSecurityID).Single();

            List <Model.Archive.ArchiveTab> allArchiveTabs = Controller.Archive.DossierCacheController.GetActiveDossierTabs();

            foreach (Model.Archive.ArchiveTab archiveTab in allArchiveTabs)
            {
                Controller.Archive.DossierController.LoadPersonnelDataToControl(tabControlExtended.TabPages[archiveTab.Name], archiveTab, personelNumber);
            }
            LoadContactInfo(this.SelectedDossier);
            SetDossierDocumentsCount(this.SelectedDossier);
            LoadPersonnelImage(this.SelectedDossier);
            //لاگ گیری برای مشاهده پرونده
            Setting.User.ThisProgram.AddLog(Setting.User.UserOparatesPlaceNames.لاگیری_سند_و_پرونده, Setting.User.UserOparatesNames.مشاهده_پرونده, PersonnelNumberTextBox.Text, "");

            return(true);
        }
Beispiel #3
0
 private bool SaveInformation()
 {
     try
     {
         Cursor.Current = Cursors.WaitCursor;
         List <Model.Archive.ArchiveTab>         archiveTabs    = Controller.Archive.ArchiveTabController.GetActiveDossierTabs();
         Model.Archive.Dossier                   dossier        = Model.Archive.Dossier.GetNewInstance(PersonnelNumberTextBox.Text, imageData.IsNullOrEmpty() ? null : new System.Data.Linq.Binary(imageData), this.SelectedDossier.FilesPathOrDatabaseName, int.Parse((dossierTypeComboBoxExtended.SelectedItem as Njit.Program.Controls.ComboBoxExtended.CustomItem).Value.ToString()));
         List <System.Data.SqlClient.SqlCommand> sqlCommandList = new List <System.Data.SqlClient.SqlCommand>();
         foreach (Model.Archive.ArchiveTab tab in archiveTabs)
         {
             sqlCommandList.Add(SqlHelper.GetDeleteCommandForArchiveTab(tab, PersonnelNumberTextBox.Text));
             foreach (var archiveField in tab.ArchiveFields)
             {
                 if (archiveField.FieldTypeCode == (int)Enums.FieldTypes.زیرگروه_جدولی)
                 {
                     sqlCommandList.Add(SqlHelper.GetDeleteCommandForArchiveField(archiveField, PersonnelNumberTextBox.Text));
                 }
             }
             List <System.Data.SqlClient.SqlCommand> sqlCommands = SqlHelper.GetDossierInsertCommands(tabControlExtended.TabPages[tab.Name], tab, PersonnelNumberTextBox.Text);
             sqlCommandList.AddRange(sqlCommands);
         }
         //--------------- ذخیره اطلاعات تماس و آدرس
         List <Model.Archive.ContactView> contactView = new List <Model.Archive.ContactView>();
         List <Model.Archive.AddressView> addressView = new List <Model.Archive.AddressView>();
         Model.Archive.Info info = null;
         if (Setting.Archive.ThisProgram.LoadedArchiveSettings.InfoGroupTab)
         {
             foreach (Model.Archive.ContactView item in contactViewBindingSource)
             {
                 item.PersonnelNumber = PersonnelNumberTextBox.Text;
                 contactView.Add(item);
             }
             foreach (Model.Archive.AddressView item in addressViewBindingSource)
             {
                 item.PersonnelNumber = PersonnelNumberTextBox.Text;
                 addressView.Add(item);
             }
             if (!(string.IsNullOrEmpty(txtComment.Text) && string.IsNullOrEmpty(txtEmail.Text) && string.IsNullOrEmpty(txtWebsite.Text)))
             {
                 info = Model.Archive.Info.GetNewInstance(PersonnelNumberTextBox.Text, txtComment.Text, txtEmail.Text, txtWebsite.Text);
             }
         }
         Controller.Archive.DossierController.Update(dossier, sqlCommandList, contactView, addressView, info);
         EnableOrDisableForm(false, false);
         PersianMessageBox.Show("اطلاعات پرونده با موفقیت ثبت گردید");
         return(true);
     }
     catch (Exception ex)
     {
         PersianMessageBox.Show(ex.Message);
         return(false);
     }
     finally
     {
         Cursor.Current = Cursors.Default;
     }
 }
Beispiel #4
0
        internal static void Delete(string personnelNumber)
        {
            var dc = Model.Archive.ArchiveDataClassesDataContext.GetNewInstance();

            try
            {
                dc.Connection.Open();
                dc.Transaction = dc.Connection.BeginTransaction();

                //if (Controller.Archive.DossierController.IsDossierInLending(dc, personnelNumber))
                //    throw new Exception("این پرونده به امانت داده شده است، ابتدا بازگشت امانت را ثبت کنید");

                dc.Addresses.DeleteAllOnSubmit(dc.Addresses.Where(t => t.PersonnelNumber == personnelNumber));
                dc.SubmitChanges();

                dc.Contacts.DeleteAllOnSubmit(dc.Contacts.Where(t => t.PersonnelNumber == personnelNumber));
                dc.SubmitChanges();

                dc.Infos.DeleteAllOnSubmit(dc.Infos.Where(t => t.PersonnelNumber == personnelNumber));
                dc.SubmitChanges();

                dc.Lendings.DeleteAllOnSubmit(dc.Lendings.Where(t => t.PersonnelNumber == personnelNumber));
                dc.SubmitChanges();

                foreach (var doc in dc.Documents.Where(t => t.PersonnelNumber == personnelNumber && t.ParentDocumentID.HasValue))
                {
                    Controller.Archive.DocumentController.Delete(dc, doc.ID);
                }

                foreach (var doc in dc.Documents.Where(t => t.PersonnelNumber == personnelNumber && t.ParentDocumentID == null))
                {
                    Controller.Archive.DocumentController.Delete(dc, doc.ID);
                }

                Model.Archive.Dossier dossier = dc.Dossiers.Where(t => t.PersonnelNumber == personnelNumber).Single();
                dc.Dossiers.DeleteOnSubmit(dossier);
                dc.SubmitChanges();

                try
                {
                    Setting.User.ThisProgram.AddLog(Setting.User.UserOparatesPlaceNames.پرونده, Setting.User.UserOparatesNames.حذف, null, "حذف پرونده با " + Setting.Archive.ThisProgram.LoadedArchiveSettings.PersonnelNumber_Label + " " + personnelNumber);
                }
                catch
                {
                    throw new Exception("خطا در ذخیره عملکرد کاربر جاری");
                }

                dc.Transaction.Commit();
                dc.Connection.Close();
            }
            catch
            {
                dc.Transaction.Rollback();
                dc.Connection.Close();
                throw;
            }
        }
Beispiel #5
0
 public static void Insret(Model.Archive.Dossier dossier, Model.Archive.ArchiveDataClassesDataContext dc)
 {
     try
     {
         dc.Dossiers.InsertOnSubmit(dossier);
         dc.SubmitChanges();
     }
     catch (Exception ex)
     {
         throw new Exception("خطا در ثبت اطلاعات" + "\r\n\r\n" + ex.Message);
     }
 }
Beispiel #6
0
 public static void Update(Model.Archive.Dossier dossier, Model.Archive.ArchiveDataClassesDataContext dc)
 {
     try
     {
         Model.Archive.Dossier.Copy(dc.Dossiers.Where(t => t.PersonnelNumber == dossier.PersonnelNumber).Single(), dossier);
         dc.SubmitChanges();
     }
     catch (Exception ex)
     {
         throw new Exception("خطا در بروزرسانی اطلاعات" + "\r\n\r\n" + ex.Message);
     }
 }
Beispiel #7
0
        //مجوز دسترس به پرونده را دارد یا خیر
        private bool isAccessPermission(Model.Archive.Dossier dossier)
        {
            //اگر ادمین باشد نیازی نیست
            if (Setting.User.ThisProgram.IsMembershipInAdministartorRole(Setting.User.ThisProgram.GetCurrentUser <Model.Common.User>()))
            {
                return(true);
            }
            Model.Common.ArchiveCommonDataClassesDataContext dc = new Model.Common.ArchiveCommonDataClassesDataContext(Setting.Sql.ThisProgram.DatabaseConnection.ConnectionString);
            //لیست نوع دسترسی
            List <Model.Common.PermissionDossier> listSecurity = dc.PermissionDossiers.Where(q => q.User.Code == Setting.User.ThisProgram.GetCurrentUser <Model.Common.User>().Code&& q.PK_Archive == Setting.Archive.ThisProgram.SelectedArchiveTree.ArchiveID).ToList();

            return(listSecurity.Exists(q => q.DossierType == dossier.DossierSecurityID));
        }
Beispiel #8
0
 protected override void OnShown(EventArgs e)
 {
     base.OnShown(e);
     System.Media.SystemSounds.Exclamation.Play();
     Model.Archive.Dossier dossier = Controller.Archive.DossierController.Select(this.PersonnelNumber);
     if (!isAccessPermission(dossier))
     {
         PersianMessageBox.Show(this, string.Format("مجوز دسترسی به پرونده های با سطح دسترسی '{0}' برای شما صادر نشده است", dossier.DossierType.Title));
         this.Close();
         return;
     }
     this.groupBoxDossier.PersonnelNumber = this.PersonnelNumber;
 }
        internal static void Delete(Model.Archive.ArchiveDataClassesDataContext dc, int id)
        {
            Model.Archive.Document doc     = dc.Documents.Where(t => t.ID == id).Single();
            Model.Archive.Dossier  dossier = dc.Dossiers.Where(t => t.PersonnelNumber == doc.PersonnelNumber).Single();

            int childCount = dc.Documents.Where(t => t.ParentDocumentID == id).Count();

            if (childCount > 0)
            {
                throw new Exception("تعداد " + childCount.ToString() + " سند به عنوان ضمیمه به سند شماره " + doc.Index + " افزوده شده است" + "\r\n" + "برای حذف سند شماره " + doc.Index + " ابتدا باید سندهای ضمیمه را حذف کنید");
            }
            dc.Documents.DeleteOnSubmit(doc);
            dc.SubmitChanges();

            if (Setting.Archive.ThisProgram.LoadedArchiveSettings.UseDatabase)
            {
                try
                {
                    Model.ArchiveDocument.DocumentDataClassesDataContext documentsDc = Model.ArchiveDocument.DocumentDataClassesDataContext.GetNewInstance(dossier.FilesPathOrDatabaseName);
                    documentsDc.Documents.DeleteAllOnSubmit(documentsDc.Documents.Where(t => t.ArchiveDocumentID == id));
                    documentsDc.SubmitChanges();
                }
                catch (Exception ex)
                {
                    throw new Exception("خطا در حذف فایل سند شماره " + doc.Index + "\r\n" + ex.Message);
                }
            }
            else
            {
                Njit.Common.SystemUtility sysUtil;
                try
                {
                    sysUtil = Njit.Program.Options.GetSystemUtility(dc.Connection as SqlConnection, Setting.Program.ThisProgram.NetworkName, Setting.Program.ThisProgram.NetworkPort);
                }
                catch (Exception ex)
                {
                    throw new Exception("خطا در اتصال به سرور" + "\r\n" + ex.Message);
                }
                if (sysUtil.FileExists(Path.Combine(dossier.FilesPathOrDatabaseName, doc.FileName)))
                {
                    try
                    {
                        //sysUtil.DeleteFile(Path.Combine(dossier.FilesPathOrDatabaseName, doc.FileName));
                    }
                    catch (Exception ex)
                    {
                        throw new Exception("خطا در حذف فایل سند شماره " + doc.Index + "\r\n" + ex.Message);
                    }
                }
            }
        }
Beispiel #10
0
        private void LoadPersonnelImage(Model.Archive.Dossier dossier)
        {
            if (dossier.PersonnelImage.IsNullOrEmpty())
            {
                imageData = null;
                pictureBoxPersonnel.Image = Properties.Resources.Person;
                return;
            }
            imageData = dossier.PersonnelImage.ToArray();
            MemoryStream ms  = new MemoryStream(imageData);
            Image        Img = Image.FromStream(ms);

            pictureBoxPersonnel.Image = Njit.Common.Helpers.ImageHelper.GetThumbnail(Img, pictureBoxPersonnel.Size, Color.White);
            Img.Dispose();
            ms.Close();
            ms.Dispose();
        }
        private StringBuilder CreateDossier(string PersonnelNumber)
        {
            StringBuilder _Error = new StringBuilder();

            if (CheckPersonnelNumber(PersonnelNumber))
            {
                Model.Archive.ArchiveDataClassesDataContext dc = Model.Archive.ArchiveDataClassesDataContext.GetNewInstance();
                Njit.Common.SystemUtility sysUtil = null;
                try
                {
                    sysUtil = Njit.Program.Options.GetSystemUtility(dc.Connection as System.Data.SqlClient.SqlConnection, Setting.Program.ThisProgram.NetworkName, Setting.Program.ThisProgram.NetworkPort);
                }
                catch (Exception ex)
                {
                    _Error.Append("خطا در اتصال به سرور" + "\r\n" + ex.Message);
                }
                try
                {
                    if (Setting.Archive.ThisProgram.LoadedArchiveSettings.UseDatabase == false && !sysUtil.DirectoryExists(Setting.Archive.ThisProgram.LoadedArchiveSettings.DocumentsPathOrDatabaseName))
                    {
                        throw new Exception("مسیر ذخیره اسناد نامعتبر است\r\nلطفا در قسمت تنظیمات برنامه مسیر ذخیره اسناد را انتخاب کنید" + "\r\n" + Setting.Archive.ThisProgram.LoadedArchiveSettings.DocumentsPathOrDatabaseName);
                    }
                    Model.Archive.Dossier dossier = Model.Archive.Dossier.GetNewInstance(PersonnelNumber, null, Setting.Archive.ThisProgram.LoadedArchiveSettings.UseDatabase ? Setting.Archive.ThisProgram.LoadedArchiveSettings.DocumentsPathOrDatabaseName : Path.Combine(Setting.Archive.ThisProgram.LoadedArchiveSettings.DocumentsPathOrDatabaseName, Njit.Common.PublicMethods.ReplaceInvalidPathAndFileNameChars(PersonnelNumber, "-")), Convert.ToInt32(dossierTypeComboBoxExtended.SelectedValue));
                    List <System.Data.SqlClient.SqlCommand> sqlCommandList = new List <System.Data.SqlClient.SqlCommand>();
                    List <Model.Archive.ContactView>        contactView    = new List <Model.Archive.ContactView>();
                    List <Model.Archive.AddressView>        addressView    = new List <Model.Archive.AddressView>();
                    Model.Archive.Info info = null;

                    Controller.Archive.DossierController.Insert(dossier, sqlCommandList, contactView, addressView, info);
                }
                catch (Exception ex)
                {
                    _Error.Append(ex.Message.ToString());
                }
            }
            else
            {
                _Error.Append("کد پرسنلی");
                _Error.Append("'" + PersonnelNumber + "'");
                _Error.Append("در سیستم وجود دارد");
            }
            return(_Error);
        }
Beispiel #12
0
 public static void Update(Model.Archive.Dossier dossier, List <System.Data.SqlClient.SqlCommand> sSqlCommands,
                           List <Model.Archive.ContactView> contactView, List <Model.Archive.AddressView> addressView, Model.Archive.Info info)
 {
     Model.Archive.ArchiveDataClassesDataContext dc = Model.Archive.ArchiveDataClassesDataContext.GetNewInstance();
     dc.Connection.Open();
     dc.Transaction = dc.Connection.BeginTransaction();
     try
     {
         Controller.Archive.DossierController.Update(dossier, dc);
         //------------
         foreach (System.Data.SqlClient.SqlCommand sqlCommand in sSqlCommands)
         {
             sqlCommand.Connection  = dc.Connection as System.Data.SqlClient.SqlConnection;
             sqlCommand.Transaction = dc.Transaction as System.Data.SqlClient.SqlTransaction;
             sqlCommand.ExecuteNonQuery();
         }
         //------------ اطلاعات تماس و آدرس
         Controller.Archive.InfoController.InsertOrUpdate(info, dc);
         Controller.Archive.AddressController.Update(addressView, dossier.PersonnelNumber, dc);
         Controller.Archive.ContactController.Update(contactView, dossier.PersonnelNumber, dc);
         try
         {
             Setting.User.ThisProgram.AddLog(Setting.User.UserOparatesPlaceNames.پرونده, Setting.User.UserOparatesNames.ویرایش, null, "ویرایش پرونده با " + Setting.Archive.ThisProgram.LoadedArchiveSettings.PersonnelNumber_Label + " " + dossier.PersonnelNumber);
         }
         catch
         {
             throw new Exception("خطا در ذخیره عملکرد کاربر جاری");
         }
         dc.Transaction.Commit();
     }
     catch (Exception ex)
     {
         dc.Transaction.Rollback();
         throw new Exception(ex.Message);
     }
     finally
     {
         dc.Connection.Close();
     }
 }
Beispiel #13
0
        private void button1_Click(object sender, EventArgs e)
        {
            ChangeData cd = new ChangeData();

            Model.Archive.Dossier Dossier1 = Controller.Archive.DossierController.Get(txtPN.Text);
            if (Dossier1 != null)
            {
                cd.PN = Dossier1.PersonnelNumber;
                object obj = SqlHelper.GetArchiveFieldValue("Dossier1", "Field1", this.txtPN.Text);
                if (obj != null)
                {
                    cd.Name = obj.ToString();
                    object obj2 = SqlHelper.GetArchiveFieldValue("Dossier1", "Field2", txtPN.Text);
                    if (obj2 != null)
                    {
                        cd.Family = obj2.ToString();
                    }
                }
                //کد ملی
                object obj3 = SqlHelper.GetArchiveFieldValue("Dossier1", "Field15", this.txtPN.Text);
                if (obj3 != null)
                {
                    cd.NN = obj3.ToString();
                }
                bool isEnter = true;
                foreach (var item in radGridViewExtended1.Rows)
                {
                    if (item.Cells[0].Value.ToString() == cd.PN)
                    {
                        isEnter = false;
                    }
                }
                if (isEnter)
                {
                    radGridViewExtended1.Rows.Add(cd.PN, cd.Name, cd.Family, cd.NN);
                }
            }
        }
Beispiel #14
0
 public void SetDossierDocumentsCount(Model.Archive.Dossier dossier)
 {
     txtDocumentsCount.Text = Controller.Archive.DocumentController.GetDocumentsCount(dossier.PersonnelNumber).ToString();
 }
Beispiel #15
0
        internal static Document AddDocument(string personnelNumber, string file, int?parentDocumentID, bool attachToDossier, Njit.Program.ComponentOne.Enums.SaveFormats imageFormat, Njit.Program.ComponentOne.Enums.CompressionTypes imageCompression, ArchiveTab archivetab)
        {
            System.IO.FileInfo fileInfo = new FileInfo(file);
            if (Setting.Archive.ThisProgram.LoadedArchiveSettings.MaxDocumentsSize > 0)
            {
                if (fileInfo.Length / 1024 > Setting.Archive.ThisProgram.LoadedArchiveSettings.MaxDocumentsSize)
                {
                    throw new Exception(string.Format("حجم فایل نباید از {0} کیلوبایت بیشتر باشد\r\nحجم این فایل {1} کیلوبایت است", Setting.Archive.ThisProgram.LoadedArchiveSettings.MaxDocumentsSize, fileInfo.Length / 1024));
                }
            }
            long   number        = Controller.Archive.DocumentController.GetNewDocumentNumber(personnelNumber);
            string fileExtension = Path.GetExtension(file).ToLower();

            Model.Archive.Dossier dossier = Controller.Archive.DossierController.Select(personnelNumber);
            if (imageExtensions.Contains(fileExtension))
            {
                switch (imageFormat)
                {
                case Njit.Program.ComponentOne.Enums.SaveFormats.None:
                    break;

                case Njit.Program.ComponentOne.Enums.SaveFormats.OnePdf:
                    if (fileExtension != ".pdf")
                    {
                        fileExtension = ".pdf";
                        string newfile = GetUniqFileName(fileExtension);
                        Image  image   = Image.FromFile(file);
                        Njit.Pdf.CreatePDF.FromImages(new Image[] { image }, newfile, 0, Njit.Pdf.CreatePDF.PageOrientation.عمودی, Njit.Pdf.CreatePDF.PageSize.OriginalSize);
                        image.Dispose();
                        file = newfile;
                    }
                    break;

                case Njit.Program.ComponentOne.Enums.SaveFormats.Pdf:
                    if (fileExtension != ".pdf")
                    {
                        fileExtension = ".pdf";
                        string newfile = GetUniqFileName(fileExtension);
                        Image  image   = Image.FromFile(file);
                        Njit.Pdf.CreatePDF.FromImages(new Image[] { image }, newfile, 0, Njit.Pdf.CreatePDF.PageOrientation.عمودی, Njit.Pdf.CreatePDF.PageSize.OriginalSize);
                        image.Dispose();
                        file = newfile;
                    }
                    break;

                case Njit.Program.ComponentOne.Enums.SaveFormats.OneMultiTiff:
                    if (fileExtension != ".tiff" && fileExtension != ".tif")
                    {
                        fileExtension = ".tiff";
                        string newfile = GetUniqFileName(fileExtension);
                        Image  image   = Image.FromFile(file);
                        Njit.Common.Helpers.ImageHelper.ConvertImage(image, System.Drawing.Imaging.ImageFormat.Tiff, GetImageCompression(imageCompression), newfile);
                        image.Dispose();
                        file = newfile;
                    }
                    break;

                case Njit.Program.ComponentOne.Enums.SaveFormats.Tiff:
                    if (fileExtension != ".tiff" && fileExtension != ".tif")
                    {
                        fileExtension = ".tiff";
                        string newfile = GetUniqFileName(fileExtension);
                        Image  image   = Image.FromFile(file);
                        Njit.Common.Helpers.ImageHelper.ConvertImage(image, System.Drawing.Imaging.ImageFormat.Tiff, GetImageCompression(imageCompression), newfile);
                        image.Dispose();
                        file = newfile;
                    }
                    break;

                case Njit.Program.ComponentOne.Enums.SaveFormats.JPEG:
                    if (fileExtension != ".jpg" && fileExtension != ".jpeg")
                    {
                        fileExtension = ".jpg";
                        string newfile = GetUniqFileName(fileExtension);
                        Image  image   = Image.FromFile(file);
                        Njit.Common.Helpers.ImageHelper.ConvertImage(image, System.Drawing.Imaging.ImageFormat.Jpeg, GetImageCompression(imageCompression), newfile);
                        image.Dispose();
                        file = newfile;
                    }
                    break;

                case Njit.Program.ComponentOne.Enums.SaveFormats.PNG:
                    if (fileExtension != ".png")
                    {
                        fileExtension = ".png";
                        string newfile = GetUniqFileName(fileExtension);
                        Image  image   = Image.FromFile(file);
                        Njit.Common.Helpers.ImageHelper.ConvertImage(image, System.Drawing.Imaging.ImageFormat.Png, GetImageCompression(imageCompression), newfile);
                        image.Dispose();
                        file = newfile;
                    }
                    break;

                case Njit.Program.ComponentOne.Enums.SaveFormats.BMP:
                    if (fileExtension != ".bmp")
                    {
                        fileExtension = ".bmp";
                        string newfile = GetUniqFileName(fileExtension);
                        Image  image   = Image.FromFile(file);
                        Njit.Common.Helpers.ImageHelper.ConvertImage(image, System.Drawing.Imaging.ImageFormat.Bmp, GetImageCompression(imageCompression), newfile);
                        image.Dispose();
                        file = newfile;
                    }
                    break;

                default:
                    throw new Exception();
                }
            }
            string fileNameToSaveInDatabase = Njit.Common.PublicMethods.ReplaceInvalidPathAndFileNameChars(personnelNumber, "-") + "-" + number.ToString() + fileExtension;
            string destinationFile          = null;

            if (Setting.Archive.ThisProgram.LoadedArchiveSettings.UseDatabase == false)
            {
                destinationFile = Path.Combine(dossier.FilesPathOrDatabaseName, fileNameToSaveInDatabase);
                Njit.Common.SystemUtility sysUtility = Njit.Program.Options.GetSystemUtility(DataAccess.ArchiveDataAccess.GetNewInstance().Connection, Setting.Program.ThisProgram.NetworkName, Setting.Program.ThisProgram.NetworkPort);
                int i = 1;
                while (sysUtility.FileExists(destinationFile))
                {
                    fileNameToSaveInDatabase = Njit.Common.PublicMethods.ReplaceInvalidPathAndFileNameChars(personnelNumber, "-") + "-" + number.ToString() + " (" + i.ToString() + ")" + fileExtension;
                    destinationFile          = Path.Combine(dossier.FilesPathOrDatabaseName, fileNameToSaveInDatabase);
                    i++;
                }
            }

            Model.Archive.Document document = Model.Archive.Document.GetNewInstance(personnelNumber, number.ToString(), fileNameToSaveInDatabase, archivetab.ID, attachToDossier, parentDocumentID, Controller.Archive.DocumentController.GetMaxDocumentIndex(personnelNumber) + 1);

            var archiveDc = Model.Archive.ArchiveDataClassesDataContext.GetNewInstance();

            Model.ArchiveDocument.DocumentDataClassesDataContext documentDc = null;
            if (Setting.Archive.ThisProgram.LoadedArchiveSettings.UseDatabase)
            {
                documentDc = Model.ArchiveDocument.DocumentDataClassesDataContext.GetNewInstance(Setting.Archive.ThisProgram.LoadedArchiveSettings.DocumentsPathOrDatabaseName);
            }

            archiveDc.Connection.Open();
            archiveDc.Transaction = archiveDc.Connection.BeginTransaction();
            if (documentDc != null)
            {
                documentDc.Connection.Open();
                documentDc.Transaction = documentDc.Connection.BeginTransaction();
            }
            try
            {
                archiveDc.Documents.InsertOnSubmit(document);
                archiveDc.SubmitChanges();
                archiveDc.Transaction.Commit();
                if (documentDc != null)
                {
                    Model.ArchiveDocument.Document doc = Model.ArchiveDocument.Document.GetNewInstance(document.ID, new System.Data.Linq.Binary(System.IO.File.ReadAllBytes(file)));
                    documentDc.Documents.InsertOnSubmit(doc);
                    documentDc.SubmitChanges();
                    documentDc.Transaction.Commit();
                }
            }
            catch (Exception ex)
            {
                archiveDc.Transaction.Rollback();
                if (documentDc != null)
                {
                    documentDc.Transaction.Rollback();
                }
                throw new Exception("خطا در ثبت اطلاعات" + "\r\n\r\n" + ex.Message);
            }
            finally
            {
                archiveDc.Connection.Close();
                if (documentDc != null)
                {
                    documentDc.Connection.Close();
                }
            }
            if (Setting.Archive.ThisProgram.LoadedArchiveSettings.UseDatabase == false)
            {
                FileStream serverFileStream = null;
                FileStream clientFileStream = null;
                try
                {
                    Njit.Common.SystemUtility sysUtility = Njit.Program.Options.GetSystemUtility(DataAccess.ArchiveDataAccess.GetNewInstance().Connection, Setting.Program.ThisProgram.NetworkName, Setting.Program.ThisProgram.NetworkPort);
                    if (!sysUtility.DirectoryExists(dossier.FilesPathOrDatabaseName))
                    {
                        sysUtility.CreateDirectory(dossier.FilesPathOrDatabaseName);
                    }
                    serverFileStream = sysUtility.CreateFile(destinationFile);
                    clientFileStream = File.OpenRead(file);
                    byte[] buffre    = new byte[1 * 1024 * 1024];
                    int    readCount = 0;
                    do
                    {
                        readCount = clientFileStream.Read(buffre, 0, buffre.Length);
                        serverFileStream.Write(buffre, 0, readCount);
                    }while (readCount > 0);
                    clientFileStream.Close();
                    serverFileStream.Close();
                    clientFileStream.Dispose();
                    serverFileStream.Dispose();
                }
                catch (Exception ex)
                {
                    if (clientFileStream != null)
                    {
                        clientFileStream.Dispose();
                    }
                    if (serverFileStream != null)
                    {
                        serverFileStream.Dispose();
                    }
                    throw new Exception("خطا در ذخیره فایل" + "\r\n" + file + "\r\n\r\n" + ex.Message);
                }
            }
            return(document);
        }
Beispiel #16
0
        private void btnOK_Click(object sender, EventArgs e)
        {
            if (Validation())
            {
                if (!Setting.User.ThisProgram.CheckUserAccessPermission(Setting.User.AccessPermissionUnits.Archive, cmArchive.SelectedValue.ToString()))
                {
                    PersianMessageBox.Show(this, string.Format("مجوز دسترسی به بایگانی '{0}' برای شما صادر نشده است", cmArchive.SelectedText));
                    return;
                }
                int thisArchive = Setting.Archive.ThisProgram.SelectedArchiveTree.Archive.ID;
                //نام و نام خانوادگی و کد ملی به همراه تمام اسناد آنرا کپی می کنیم
                string Name = "", Family = "", NN = "";
                Model.Archive.Dossier Dossier1 = Controller.Archive.DossierController.Get(txtDossier1.Text);
                if (Dossier1 != null)
                {
                    object obj = SqlHelper.GetArchiveFieldValue("Dossier1", "Field1", this.txtDossier1.Text);
                    if (obj != null)
                    {
                        Name = obj.ToString();
                        object obj2 = SqlHelper.GetArchiveFieldValue("Dossier1", "Field2", txtDossier1.Text);
                        if (obj2 != null)
                        {
                            Family = obj2.ToString();
                        }
                    }
                    //کد ملی
                    object obj3 = SqlHelper.GetArchiveFieldValue("Dossier1", "Field15", this.txtDossier1.Text);
                    if (obj3 != null)
                    {
                        NN = obj3.ToString();
                    }
                    //لیست اسناد
                    List <Model.Archive.Document> listdoc = Controller.Archive.DocumentController.GetDocuments(txtDossier1.Text).ToList();

                    //رفتن به بایگانی انتخابی
                    Setting.Archive.ThisProgram.SelectedArchiveTree.Archive = Controller.Common.ArchiveController.GetActiveArchives().Where(q => q.ID.ToString() == cmArchive.SelectedValue.ToString()).FirstOrDefault();

                    try
                    {
                        Model.Archive.Dossier dossier = new Model.Archive.Dossier();
                        dossier.PersonnelNumber         = txtDossier2.Text;
                        dossier.PersonnelImage          = Dossier1.PersonnelImage;
                        dossier.FilesPathOrDatabaseName = Dossier1.FilesPathOrDatabaseName;
                        dossier.DossierSecurityID       = Dossier1.DossierSecurityID;
                        //اضافه کردن سند جدید
                        Model.Archive.ArchiveDataClassesDataContext dc = Model.Archive.ArchiveDataClassesDataContext.GetNewInstance();
                        dc.Connection.Open();
                        dc.Transaction = dc.Connection.BeginTransaction();
                        try
                        {
                            Controller.Archive.DossierController.Insret(dossier, dc);
                            //------------

                            try
                            {
                                Setting.User.ThisProgram.AddLog(Setting.User.UserOparatesPlaceNames.پرونده, Setting.User.UserOparatesNames.ویرایش, null, "ویرایش پرونده با " + Setting.Archive.ThisProgram.LoadedArchiveSettings.PersonnelNumber_Label + " " + txtDossier2.Text);
                            }
                            catch
                            {
                                throw new Exception("خطا در ذخیره عملکرد کاربر جاری");
                            }
                            dc.Transaction.Commit();
                        }
                        catch (Exception ex)
                        {
                            dc.Transaction.Rollback();
                            throw new Exception(ex.Message);
                        }
                        finally
                        {
                            dc.Connection.Close();
                        }
                        //اضافه کردن نام  نام خانوادگی و کد ملی
                        SqlHelper.InsertDossier1(txtDossier2.Text, Name, Family, NN);
                        //اضافه کردن سند ها به پرونده جدید

                        foreach (var item in listdoc)
                        {
                            Model.Archive.Document document = item;
                            try
                            {
                                string file;
                                if (Setting.Archive.ThisProgram.LoadedArchiveSettings.UseDatabase)
                                {
                                    string tempPath = System.IO.Path.Combine(System.IO.Path.GetTempPath(), "~Mahba");
                                    if (!System.IO.Directory.Exists(tempPath))
                                    {
                                        System.IO.Directory.CreateDirectory(tempPath);
                                    }
                                    file = System.IO.Path.Combine(tempPath, System.IO.Path.GetFileName(document.FileName));
                                    System.IO.File.WriteAllBytes(file, Controller.ArchiveDocument.ArchiveDocumentController.GetDocumentData(document.ID));
                                }
                                else
                                {
                                    file = System.IO.Path.Combine(document.Dossier.FilesPathOrDatabaseName, document.FileName);
                                }
                                Model.Archive.ArchiveTab archiveTab = Controller.Archive.ArchiveTabController.GetName("Document2");
                                Controller.Archive.DocumentController.AddDocument(txtDossier2.Text, file, null, false, (Njit.Program.ComponentOne.Enums.SaveFormats)(Setting.Archive.ThisProgram.LoadedArchiveSettings.DefaultImageFormatCode ?? ((int)Njit.Program.ComponentOne.Enums.SaveFormats.None)), (Njit.Program.ComponentOne.Enums.CompressionTypes)(Setting.Archive.ThisProgram.LoadedArchiveSettings.DefaultCompressionTypeCode ?? ((int)Njit.Program.ComponentOne.Enums.CompressionTypes.None)), archiveTab);

                                Setting.User.ThisProgram.AddLog(Setting.User.UserOparatesPlaceNames.لاگیری_سند_و_پرونده, Setting.User.UserOparatesNames.کپی_سند, txtDossier2.Text, "کپی سند شماره:" + document.Number);
                            }
                            catch (Exception ex)
                            {
                                PersianMessageBox.Show(this, "خطا در کپی سند شماره " + document.Number + "\r\n\r\n" + ex.Message);
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        Setting.Archive.ThisProgram.SelectedArchiveTree.Archive = Controller.Common.ArchiveController.GetActiveArchives().Where(q => q.ID == thisArchive).FirstOrDefault();
                        MessageBox.Show(ex.Message);
                    }
                }
                //برگشت به بایگانی اولیه
                Setting.Archive.ThisProgram.SelectedArchiveTree.Archive = Controller.Common.ArchiveController.GetActiveArchives().Where(q => q.ID == thisArchive).FirstOrDefault();
                MessageBox.Show("پرونده با موفقیت انتقال پیدا کرد.");
            }
        }
        private void btnOK_Click(object sender, EventArgs e)
        {
            if (dossierTypeComboBoxExtended.SelectedValue == null)
            {
                MessageBox.Show("سطح دسترسی پرونده ها را مشخص نکرده اید");
            }
            else if (dataGridView1.Rows.Count <= 1)
            {
                MessageBox.Show("اطلاعات دانشجویان وارد نشده است");
            }
            #region CreateDossier
            List <ErrorExcel> _listerro = new List <ErrorExcel>();
            for (int rows = 0; rows < dataGridView1.Rows.Count; rows++)
            {
                string        PersonnelNumber = "";
                StringBuilder er = new StringBuilder();
                try
                {
                    if (dataGridView1.Rows[rows].Cells[0].Value != null)
                    {
                        //کدپرسنلی
                        PersonnelNumber = dataGridView1.Rows[rows].Cells[0].Value.ToString();
                        //چک کردن شماره پرسنلی ها
                        if (CheckPersonnelNumber(PersonnelNumber) == false)
                        {
                            continue;
                        }
                        else
                        {
                            //اضافه کردن ااطلاعات کدپرسنلی
                            List <Model.Archive.ArchiveTab>         archiveTabs    = Controller.Archive.ArchiveTabController.GetActiveDossierTabs();
                            Model.Archive.Dossier                   dossier        = Model.Archive.Dossier.GetNewInstance(PersonnelNumber, null, Setting.Archive.ThisProgram.LoadedArchiveSettings.UseDatabase ? Setting.Archive.ThisProgram.LoadedArchiveSettings.DocumentsPathOrDatabaseName : Path.Combine(Setting.Archive.ThisProgram.LoadedArchiveSettings.DocumentsPathOrDatabaseName, Njit.Common.PublicMethods.ReplaceInvalidPathAndFileNameChars(PersonnelNumber, "-")), Convert.ToInt32(dossierTypeComboBoxExtended.SelectedValue));
                            List <System.Data.SqlClient.SqlCommand> sqlCommandList = new List <System.Data.SqlClient.SqlCommand>();
                            foreach (Model.Archive.ArchiveTab tab in archiveTabs)
                            {
                                sqlCommandList.Add(SqlHelper.GetDeleteCommandForArchiveTab(tab, PersonnelNumber));
                                List <Dossier1> listDossier1 = new List <Dossier1>();
                                //نام
                                listDossier1.Add(CreateDossier1(rows, 1, "Field1", "string"));
                                //نام خانوادگی
                                listDossier1.Add(CreateDossier1(rows, 2, "Field2", "string"));
                                //کدملی
                                listDossier1.Add(CreateDossier1(rows, 3, "Field15", "string"));
                                //نام پدر
                                listDossier1.Add(CreateDossier1(rows, 4, "Field1018", "string"));
                                //جنسیت
                                listDossier1.Add(CreateDossier1(rows, 5, "Field1019", "string"));
                                //ش ش
                                listDossier1.Add(CreateDossier1(rows, 6, "Field1020", "int"));
                                // ت ت
                                listDossier1.Add(CreateDossier1(rows, 7, "Field1021", "string"));
                                //تلفن دائم
                                listDossier1.Add(CreateDossier1(rows, 8, "Field1049", "int"));
                                //تلفن ضروری
                                listDossier1.Add(CreateDossier1(rows, 9, "Field1045", "string"));
                                //تلفن همراه
                                listDossier1.Add(CreateDossier1(rows, 10, "Field1041", "string"));
                                //کد پستی
                                listDossier1.Add(CreateDossier1(rows, 11, "Field1043", "string"));
                                //صندوق پستی
                                listDossier1.Add(CreateDossier1(rows, 12, "Field1044", "string"));
                                //استان
                                listDossier1.Add(CreateDossier1(rows, 13, "Field1034", "string"));
                                //شهر
                                listDossier1.Add(CreateDossier1(rows, 14, "Field1035", "string"));
                                //بخش
                                listDossier1.Add(CreateDossier1(rows, 15, "Field1036", "string"));
                                //ادرس
                                listDossier1.Add(CreateDossier1(rows, 16, "Field1029", "string"));
                                //رشته
                                listDossier1.Add(CreateDossier1(rows, 17, "Field1032", "string"));
                                //مقطع
                                listDossier1.Add(CreateDossier1(rows, 18, "Field1033", "string"));
                                //معدل
                                listDossier1.Add(CreateDossier1(rows, 19, "Field1046", "double"));
                                //تاریخ اخذ
                                listDossier1.Add(CreateDossier1(rows, 20, "Field1048", "string"));
                                //نظام وظیفه
                                listDossier1.Add(CreateDossier1(rows, 21, "Field1047", "string"));
                                //دین
                                listDossier1.Add(CreateDossier1(rows, 22, "Field1037", "string"));
                                //مذهب
                                listDossier1.Add(CreateDossier1(rows, 23, "Field1038", "string"));
                                //ملیت
                                listDossier1.Add(CreateDossier1(rows, 24, "Field1042", "string"));
                                //سال قبولی
                                listDossier1.Add(CreateDossier1(rows, 25, "Field1040", "int"));
                                //رتبه
                                listDossier1.Add(CreateDossier1(rows, 26, "Field1039", "int"));
                                //سهمیه نهایی
                                listDossier1.Add(CreateDossier1(rows, 27, "Field1025", "string"));
                                //سهمیه ثبت نام
                                listDossier1.Add(CreateDossier1(rows, 28, "Field1024", "string"));
                                //ترم ورود
                                listDossier1.Add(CreateDossier1(rows, 29, "Field1023", "int"));
                                //تاریخ شروع تحصیل
                                listDossier1.Add(CreateDossier1(rows, 30, "Field1022", "int"));
                                //نیسمال ثبت نام
                                listDossier1.Add(CreateDossier1(rows, 31, "Field1026", "int"));
                                //نوع پذیرش
                                listDossier1.Add(CreateDossier1(rows, 32, "Field1027", "string"));
                                // نوع بورسیه
                                listDossier1.Add(CreateDossier1(rows, 33, "Field1028", "string"));
                                //نوع دوره
                                listDossier1.Add(CreateDossier1(rows, 34, "Field1030", "string"));
                                //دانشکده
                                listDossier1.Add(CreateDossier1(rows, 35, "Field1031", "string"));
                                //شماره قدیم
                                listDossier1.Add(CreateDossier1(rows, 36, "Field1050", "string"));
                                //دانشجو میهمان
                                listDossier1.Add(CreateDossier1(rows, 37, "Field1051", "bool"));
                                listDossier1.Add(CreateDossier1(rows, 38, "Field1052", "bool"));
                                listDossier1.Add(CreateDossier1(rows, 39, "Field1053", "string"));
                                List <System.Data.SqlClient.SqlCommand> sqlCommands = SqlHelper.GetDossier1InsertCommands(listDossier1, tab, PersonnelNumber);
                                sqlCommandList.AddRange(sqlCommands);
                                List <Model.Archive.ContactView> contactView = new List <Model.Archive.ContactView>();
                                List <Model.Archive.AddressView> addressView = new List <Model.Archive.AddressView>();
                                Model.Archive.Info info = null;

                                Controller.Archive.DossierController.Insert(dossier, sqlCommandList, contactView, addressView, info);
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    er.Append(ex);
                }

                if (er.Length != 0)
                {
                    ErrorExcel ex = new ErrorExcel();
                    ex.Row             = rows;
                    ex.PerssonelNumber = PersonnelNumber;
                    ex.Error           = er;
                    _listerro.Add(ex);
                    continue;
                }
            }
            #endregion
            if (_listerro.Any())
            {
                radGridViewExtended1.DataSource = null;
                radGridViewExtended1.DataSource = _listerro;
                radGridViewExtended1.EnableAlternatingRowColor = true;
            }
            else
            {
                MessageBox.Show("تمام اطلاعات با موفقیت ثبت شد");
            }
        }
Beispiel #18
0
        private void btnOK_Click(object sender, EventArgs e)
        {
            if (!(this.ActiveControl == btnOK || this.ActiveControl == durationHourTextBoxExtended))
            {
                Njit.Common.SendKeys.SendKeyDown(Keys.Tab);
                return;
            }
            try
            {
                ValidateContent();
            }
            catch (Njit.Common.ValidateException ex)
            {
                if (ex.Control != null)
                {
                    ex.Control.TextChanged -= ControlTextChanged;
                    ex.Control.Leave       -= ControlLeave;
                }
                PersianMessageBox.Show(ex.Message);
                if (ex.Control != null)
                {
                    ex.Control.Focus();
                    ex.Control.TextChanged += ControlTextChanged;
                    ex.Control.Leave       += ControlLeave;
                    errorProvider.SetError(ex.Control, ex.Message);
                }
                return;
            }
            Model.Archive.Dossier dossier = Controller.Archive.DossierController.Select(this.PersonnelNumber);
            if (!isAccessPermission(dossier))
            {
                PersianMessageBox.Show(this, string.Format("مجوز دسترسی به پرونده های با سطح دسترسی '{0}' برای شما صادر نشده است", dossier.DossierType.Title));
                this.Close();
                return;
            }
            int lendingID = 0;

            try
            {
                Model.Archive.Person person = Controller.Archive.PersonController.SearchPersonByName(cmPerson.Text);
                if (person == null)
                {
                    person = Controller.Archive.PersonController.AddPerson(cmPerson.Text);
                }
                if (person != null)
                {
                    if (!EditMode)
                    {
                        lendingID = Controller.Archive.LendingController.AddLending(Model.Archive.Lending.GetNewInstance(this.PersonnelNumber, person.ID, intentionComboBoxExtended.Text, dateDateControl.Text, timeTimeControl.Text, durationDayTextBoxExtended.IntValue.Value, durationHourTextBoxExtended.IntValue.Value, null, null, null, null, Setting.User.ThisProgram.GetCurrentUser <Model.Common.User>().Code.ToString()));
                    }
                    else
                    {
                        lendingID = Controller.Archive.LendingController.UpdateLending(this.OriginalLending.ID, Model.Archive.Lending.GetNewInstance(this.OriginalLending.ID, this.PersonnelNumber, person.ID, intentionComboBoxExtended.Text, dateDateControl.Text, timeTimeControl.Text, durationDayTextBoxExtended.IntValue.Value, durationHourTextBoxExtended.IntValue.Value, this.OriginalLending.ReturnDate, this.OriginalLending.ReturnTime, this.OriginalLending.RealDurationDay, this.OriginalLending.RealDurationHour, Setting.User.ThisProgram.GetCurrentUser <Model.Common.User>().Code.ToString()));
                    }
                }
            }
            catch (Exception ex)
            {
                PersianMessageBox.Show(this, "خطا در ثبت اطلاعات" + "\r\n\r\n" + ex.Message);
                return;
            }
            if (lendingID != 0)
            {
                ProgramEvents.OnLendingsChanged();
                this.Tag          = lendingID;
                this.DialogResult = System.Windows.Forms.DialogResult.OK;
                this.Close();
            }
        }
Beispiel #19
0
 private void SaveInformation()
 {
     try
     {
         Cursor.Current = Cursors.WaitCursor;
         Model.Archive.ArchiveDataClassesDataContext dc = Model.Archive.ArchiveDataClassesDataContext.GetNewInstance();
         Njit.Common.SystemUtility sysUtil;
         try
         {
             sysUtil = Njit.Program.Options.GetSystemUtility(dc.Connection as System.Data.SqlClient.SqlConnection, Setting.Program.ThisProgram.NetworkName, Setting.Program.ThisProgram.NetworkPort);
         }
         catch (Exception ex)
         {
             throw new Exception("خطا در اتصال به سرور" + "\r\n" + ex.Message);
         }
         if (Setting.Archive.ThisProgram.LoadedArchiveSettings.UseDatabase == false && !sysUtil.DirectoryExists(Setting.Archive.ThisProgram.LoadedArchiveSettings.DocumentsPathOrDatabaseName))
         {
             throw new Exception("مسیر ذخیره اسناد نامعتبر است\r\nلطفا در قسمت تنظیمات برنامه مسیر ذخیره اسناد را انتخاب کنید" + "\r\n" + Setting.Archive.ThisProgram.LoadedArchiveSettings.DocumentsPathOrDatabaseName);
         }
         List <Model.Archive.ArchiveTab>         archiveTabs    = Controller.Archive.ArchiveTabController.GetActiveDossierTabs();
         Model.Archive.Dossier                   dossier        = Model.Archive.Dossier.GetNewInstance(PersonnelNumberTextBox.Text, imageData.IsNullOrEmpty() ? null : new System.Data.Linq.Binary(imageData), Setting.Archive.ThisProgram.LoadedArchiveSettings.UseDatabase ? Setting.Archive.ThisProgram.LoadedArchiveSettings.DocumentsPathOrDatabaseName : Path.Combine(Setting.Archive.ThisProgram.LoadedArchiveSettings.DocumentsPathOrDatabaseName, Njit.Common.PublicMethods.ReplaceInvalidPathAndFileNameChars(PersonnelNumberTextBox.Text, "-")), int.Parse((dossierTypeComboBoxExtended.SelectedItem as Njit.Program.Controls.ComboBoxExtended.CustomItem).Value.ToString()));
         List <System.Data.SqlClient.SqlCommand> sqlCommandList = new List <System.Data.SqlClient.SqlCommand>();
         foreach (Model.Archive.ArchiveTab item in archiveTabs)
         {
             List <System.Data.SqlClient.SqlCommand> sqlCommand = SqlHelper.GetDossierInsertCommands(tabControlExtended.TabPages[item.Name], item, PersonnelNumberTextBox.Text);
             sqlCommandList.AddRange(sqlCommand);
         }
         //--------------- ذخیره اطلاعات تماس و آدرس
         List <Model.Archive.ContactView> contactView = new List <Model.Archive.ContactView>();
         List <Model.Archive.AddressView> addressView = new List <Model.Archive.AddressView>();
         Model.Archive.Info info = null;
         if (Setting.Archive.ThisProgram.LoadedArchiveSettings.InfoGroupTab)
         {
             foreach (Model.Archive.ContactView item in contactViewBindingSource)
             {
                 item.PersonnelNumber = PersonnelNumberTextBox.Text;
                 contactView.Add(item);
             }
             foreach (Model.Archive.AddressView item in addressViewBindingSource)
             {
                 item.PersonnelNumber = PersonnelNumberTextBox.Text;
                 addressView.Add(item);
             }
             if (!(string.IsNullOrEmpty(txtComment.Text) && string.IsNullOrEmpty(txtEmail.Text) && string.IsNullOrEmpty(txtWebsite.Text)))
             {
                 info = Model.Archive.Info.GetNewInstance(PersonnelNumberTextBox.Text, txtComment.Text, txtEmail.Text, txtWebsite.Text);
             }
         }
         Controller.Archive.DossierController.Insert(dossier, sqlCommandList, contactView, addressView, info);
         EnableOrDisableForm(false, false);
         var result = PersianMessageBox.Show(this, "اطلاعات پرونده با موفقیت ثبت گردید", "اطلاعات ثبت شد", new Njit.MessageBox.VDialogButton[] { new Njit.MessageBox.VDialogButton(Njit.MessageBox.VDialogResult.OK, "ثبت اسناد پرونده"), new Njit.MessageBox.VDialogButton(Njit.MessageBox.VDialogResult.Continue, "ثبت پرونده جدید"), new Njit.MessageBox.VDialogButton(Njit.MessageBox.VDialogResult.Cancel, "خروج") }, Njit.MessageBox.VDialogIcon.Question, Njit.MessageBox.VDialogDefaultButton.Button1, System.Windows.Forms.RightToLeft.Yes, false, null, null, null, null, null);
         if (result == Njit.MessageBox.VDialogResult.Cancel)
         {
             this.Close();
         }
         else if (result == Njit.MessageBox.VDialogResult.Continue)
         {
             InvokeOnClick(btnNewDossier, EventArgs.Empty);
         }
         else if (result == Njit.MessageBox.VDialogResult.OK)
         {
             Model.Common.User currentUser = Setting.User.ThisProgram.GetCurrentUser <Model.Common.User>();
             if (currentUser != null)
             {
                 if (IsMembershipInAdministartorRole(currentUser))
                 {
                     using (View.ArchiverDocumentManagement f = new ArchiverDocumentManagement(dossier.PersonnelNumber, 0))
                     {
                         this.Close();
                         f.ShowDialog();
                     }
                 }
                 else if (Setting.User.ThisProgram.CheckUserAccessPermission(currentUser, "ArchiverDocumentManagement", null))
                 {
                     using (View.ArchiverDocumentManagement f = new ArchiverDocumentManagement(dossier.PersonnelNumber, 0))
                     {
                         this.Close();
                         f.ShowDialog();
                     }
                 }
                 else if (Setting.User.ThisProgram.CheckUserAccessPermission(currentUser, "ArchiveDocumentShow", null))
                 {
                     using (View.ArchiveDocumentShow f = new ArchiveDocumentShow(dossier.PersonnelNumber, 0))
                     {
                         this.Close();
                         f.ShowDialog(this);
                     }
                 }
                 else
                 {
                     PersianMessageBox.Show("شما به صفحه اضافه کردن اسناد دسترسی ندارید");
                 }
             }
         }
     }
     catch (Exception ex)
     {
         PersianMessageBox.Show(ex.Message);
         return;
     }
     finally
     {
         Cursor.Current = Cursors.Default;
     }
 }