protected override void OnLoad(EventArgs e) { base.OnLoad(e); if (!this.DesignMode) { if (SystemUtility == null) { _SystemUtility = Options.SystemUtility; } string[] drives; try { drives = _SystemUtility.GetDrives(); } catch (Exception ex) { PersianMessageBox.Show(this, "خطا در دریافت لیست درایوها" + "\r\n\r\n" + ex.Message); return; } treeView.Nodes.Clear(); foreach (string drive in drives) { TreeNode node = new TreeNode(drive.Substring(0, 1)); node.SelectedImageKey = node.ImageKey = "logicalDrive"; node.Tag = drive; treeView.Nodes.Add(node); } } }
public CopyFiles(string[] sourceFiles, string[] destinationFiles, Njit.Common.SystemUtility sourceSystemUtility, Njit.Common.SystemUtility destinationSystemUtility, bool overWrite) : this() { this.sourceFiles = sourceFiles; this.destinationPath = null; this.destinationFiles = destinationFiles; this.sourceSystemUtility = sourceSystemUtility; this.destinationSystemUtility = destinationSystemUtility; this.overWrite = overWrite; }
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); }
protected override void OnShown(EventArgs e) { base.OnShown(e); if (this.SingleInstanceProgram) { if (CloseIfNotMainInstance()) { return; } } try { lastInputLanguage = Application.CurrentInputLanguage; InputLanguage persianLang = InputLanguage.FromCulture(System.Globalization.CultureInfo.GetCultureInfo("fa-IR")); if (persianLang == null) { persianLang = InputLanguage.FromCulture(System.Globalization.CultureInfo.GetCultureInfo("fa")); } if (persianLang != null) { Application.CurrentInputLanguage = persianLang; } } catch { } if (this.DesignMode) { return; } if (Options.SettingInitializer == null) { throw new Exception("تنظیمات برنامه پیاده سازی نشده است"); } Options.SettingInitializer.GetProgramSetting().CloseSplashScreen(); if (Options.SettingInitializer != null) { if (!Options.SettingInitializer.GetUserSetting().Login()) { Options.SettingInitializer.GetProgramSetting().ShowExitDialog = false; this.Close(); return; } } UpdateDatabases(); DateTime serverDateTime = Options.SettingInitializer.GetDataAccess().Connection.GetServerDateTime(); TimeSpan timeDifference = serverDateTime.Subtract(DateTime.Now); do { if (timeDifference.TotalMinutes >= Options.SettingInitializer.GetProgramSetting().MinuteDifferenceWithServerToShowMessage || timeDifference.TotalMinutes <= -Options.SettingInitializer.GetProgramSetting().MinuteDifferenceWithServerToShowMessage) { MessageBox.VDialogResult dResult = PersianMessageBox.Show(this, string.Format("این سیستم {0} با سرور اختلاف ساعت دارد\r\nساعت سرور: {1}", timeDifference.GetText(), serverDateTime.ToLongTimeString()), "اختلاف ساعت", new MessageBox.VDialogButton[] { new MessageBox.VDialogButton(MessageBox.VDialogResult.OK, "تایید"), new MessageBox.VDialogButton("تغییر تاریخ / ساعت", ChangeSystemDate, true), new MessageBox.VDialogButton(MessageBox.VDialogResult.Cancel, "خروج از برنامه") }, MessageBox.VDialogIcon.Warning, MessageBox.VDialogDefaultButton.Button1, System.Windows.Forms.RightToLeft.Yes, false, null, null, null, null, null); if (dResult == MessageBox.VDialogResult.Cancel) { Options.SettingInitializer.GetProgramSetting().ShowExitDialog = false; this.Close(); return; } } Njit.Sql.DataAccess da = new Sql.DataAccess(Options.SettingInitializer.GetSqlSetting().DatabaseConnection.ConnectionString); serverDateTime = da.Connection.GetServerDateTime(); timeDifference = serverDateTime.Subtract(DateTime.Now); da.Dispose(); }while (timeDifference.TotalHours >= Options.SettingInitializer.GetProgramSetting().AllowableHourDifferenceWithServer || timeDifference.TotalHours <= -Options.SettingInitializer.GetProgramSetting().AllowableHourDifferenceWithServer); if (this.RegisterSystemUtilityServer) { int registeredChannels = 0; Exception exception = null; try { System.Runtime.Remoting.Channels.Tcp.TcpChannel _TcpChannel = new System.Runtime.Remoting.Channels.Tcp.TcpChannel(Options.SettingInitializer.GetProgramSetting().NetworkPort); System.Runtime.Remoting.Channels.ChannelServices.RegisterChannel(_TcpChannel, false); registeredChannels++; } catch (Exception ex) { exception = ex; } try { System.Collections.IDictionary properties = new System.Collections.Hashtable(); properties["name"] = "tcp6"; properties["port"] = Options.SettingInitializer.GetProgramSetting().NetworkPort; properties["bindTo"] = "[::]"; System.Runtime.Remoting.Channels.Tcp.TcpServerChannel _TcpChannelV6 = new System.Runtime.Remoting.Channels.Tcp.TcpServerChannel(properties, null); System.Runtime.Remoting.Channels.ChannelServices.RegisterChannel(_TcpChannelV6, false); registeredChannels++; } catch (Exception ex) { exception = ex; } if (registeredChannels > 0) { try { System.Runtime.Remoting.RemotingConfiguration.CustomErrorsMode = CustomErrorsModes.Off; System.Runtime.Remoting.RemotingConfiguration.RegisterWellKnownServiceType(typeof(Njit.Common.SystemUtility), Options.SettingInitializer.GetProgramSetting().NetworkName, System.Runtime.Remoting.WellKnownObjectMode.Singleton); } catch (Exception ex) { PersianMessageBox.Show(this, "خطا در راه اندازی سرور" + "\r\n\r\n" + ex.Message); } } else { PersianMessageBox.Show(this, "خطا در راه اندازی سرور" + "\r\n\r\n" + exception.Message); } } try { Cursor = Cursors.WaitCursor; Njit.Common.SystemUtility systemUtility = Options.SystemUtility; systemUtility.SendMessage(System.Net.Dns.GetHostName(), "--HelloWorld"); } catch (Exception ex) { PersianMessageBox.Show(this, "خطا در اتصال به سرور" + "\r\n" + "اتصال به نرم افزار بر روی سرور با خطا مواجه شده است" + "\r\n" + "توجه داشته باشید که این نرم افزار باید بر روی سرور اجرا شده باشد و یک کاربر وارد سیستم شده باشد" + "\r\n\r\n" + ex.Message); } finally { Cursor = Cursors.Default; } }
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); }
/// <summary> /// پشتیبان گیری از پایگاه داده /// </summary> /// <param name="dataAccess">کلاس دسترسی به داده ها</param> /// <param name="owner">فرمی که این کلاس در آن صدا زده شده است</param> /// <param name="databaseName">نام پایگاه داده</param> /// <param name="backupFile">آدرس فایل پشتیبان</param> /// <param name="showErrorMessageBox">پیام خطا نمایش داده شود؟</param> /// <param name="showQuestionMessageBox">در صورتی که فایل از قبل وجود داشته باشد سوال بازنویسی فایل پرسیده شود؟</param> public static BackupResult BackupDatabase(Njit.Common.SystemUtility systemUtility, Njit.Sql.IDataAccess dataAccess, IWin32Window owner, string databaseName, string backupFile, bool showErrorMessageBox, bool showQuestionMessageBox) { Form form = owner == null ? null : owner as Form; try { systemUtility.Hello(); } catch { if (showErrorMessageBox) { SetTopMost(form, false); PersianMessageBox.Show(owner, "خطا در دسترسی به سرور", "خطا", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1); } return(BackupResult.ServerError); } if (!systemUtility.DirectoryExists(System.IO.Path.GetDirectoryName(backupFile))) { try { systemUtility.CreateDirectory(System.IO.Path.GetDirectoryName(backupFile)); } catch { if (showErrorMessageBox) { SetTopMost(form, false); PersianMessageBox.Show(owner, "خطا در دسترسی به فایل های پشتیبان\nمسیر فایل های پشتیبان را تغییر دهید", "خطا", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1); } return(BackupResult.PathError); } } foreach (char c in System.IO.Path.GetInvalidFileNameChars()) { if (System.IO.Path.GetFileName(backupFile).Contains(c.ToString())) { if (showErrorMessageBox) { SetTopMost(form, false); PersianMessageBox.Show(owner, "خطا در نام فایل پشتیبان" + Environment.NewLine + "نام فایل پشتیبان صحیح نیست", "خطا", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1); } return(BackupResult.PathError); } } foreach (char c in System.IO.Path.GetInvalidPathChars()) { if (System.IO.Path.GetDirectoryName(backupFile).Contains(c.ToString())) { if (showErrorMessageBox) { SetTopMost(form, false); PersianMessageBox.Show(owner, "خطا در مسیر فایل پشتیبان" + Environment.NewLine + "مسیر فایل پشتیبان صحیح نیست", "خطا", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1); } return(BackupResult.PathError); } } if (systemUtility.FileExists(backupFile) && showQuestionMessageBox) { SetTopMost(form, false); DialogResult r = PersianMessageBox.Show(owner, "فایل" + Environment.NewLine + backupFile + Environment.NewLine + "از قبل وجود دارد" + ". " + "مایل به جایگزینی پشتیبان جدید روی فایل هستید؟", "تایید عملیات", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1); if (r != DialogResult.Yes) { return(BackupResult.Cancel); } } try { dataAccess.Execute(System.Data.CommandType.Text, string.Format("BACKUP DATABASE [{0}] TO DISK = N'{1}' WITH NOFORMAT, INIT, NAME = N'{0}-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10", databaseName, backupFile)); } catch (Exception ex) { if (showErrorMessageBox) { SetTopMost(form, false); PersianMessageBox.Show(owner, "خطا در پشتیبان گیری از اطلاعات" + Environment.NewLine + Environment.NewLine + ex.Message); } return(BackupResult.SqlError); } return(BackupResult.Success); }
public SaveFiles(Action <string> saveAction, string[] files, string[] destinationFiles, Njit.Common.SystemUtility destinationSystemUtility) { InitializeComponent(); this.saveAction = saveAction; this.sourceFiles = files; this.destinationPath = null; this.destinationFiles = destinationFiles; this.destinationSystemUtility = destinationSystemUtility; }
public SaveFiles(Action <string> saveAction, string[] files, string savePath, Njit.Common.SystemUtility destinationSystemUtility, bool useDateTimeForFileNames) { InitializeComponent(); this.saveAction = saveAction; this.sourceFiles = files; this.destinationPath = savePath; this.destinationFiles = null; this.destinationSystemUtility = destinationSystemUtility; this.useDateTimeForFileNames = useDateTimeForFileNames; }