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; }
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); }
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; } }
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; } }
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); } }
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); } }
//مجوز دسترس به پرونده را دارد یا خیر 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)); }
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); } } } }
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); }
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(); } }
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); } } }
public void SetDossierDocumentsCount(Model.Archive.Dossier dossier) { txtDocumentsCount.Text = Controller.Archive.DocumentController.GetDocumentsCount(dossier.PersonnelNumber).ToString(); }
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); }
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("تمام اطلاعات با موفقیت ثبت شد"); } }
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(); } }
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; } }