using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Windows.Forms; using System.Reflection; using Volian.Controls.Library; using VEPROMS.CSLA.Library; using System.Text.RegularExpressions; using Volian.Base.Library; namespace VEPROMS { partial class AboutVEPROMS : DevComponents.DotNetBar.Office2007Form //Form { private static string _SQLServerName = null; public static string SQLServerName // C2018-015 made this information static so we can use in meta files { get { if (_SQLServerName == null) { string connectionString = Database.VEPROMS_Connection; Match mServer = Regex.Match(connectionString, ".*Data Source=([^;]*).*"); _SQLServerName = (mServer.Success) ? mServer.Groups[1].Value : "unknown"; if (_SQLServerName.StartsWith(@".\")) _SQLServerName = @"Local \ " + _SQLServerName.Substring(2); } return _SQLServerName; } } private static string _DatabaseName = null; public static string DatabaseName // C2018-015 made this information static so we can use in meta files { get { if (_DatabaseName == null) { _DatabaseName = string.Format("{0}[SQL:{1:yyMM.ddHH}]", Database.ActiveDatabase, Database.RevDate); } return _DatabaseName; } } public AboutVEPROMS() { InitializeComponent(); // Initialize the AboutBox to display the product information from the assembly information. // Change assembly information settings for your application through either: // - Project->Properties->Application->Assembly Information // - AssemblyInfo.cs //"Data Source=.\\SQLEXPRESS;Initial Catalog=VEPROMS_RGE_SAMG_Convert;Integrated Security=True" DateTime buildDateTime = new System.IO.FileInfo(Assembly.GetExecutingAssembly().Location).LastWriteTime; // If the AssemblyConfiguration is "DEMO" then we are running a Demo version string demoTxt = VlnSettings.DemoMode ? "(Demo)": VlnSettings.DebugMode ? "(Debug)" : "(Production)"; // C2018-015 made this information static so we can use in meta files //string connectionString = Database.VEPROMS_Connection; //Match mServer = Regex.Match(connectionString,".*Data Source=([^;]*).*"); //string server = (mServer.Success)?mServer.Groups[1].Value:"unknown"; //if (server.StartsWith(@".\")) server = @"Local \ " + server.Substring(2); //string databaseName = string.Format("{0}[SQL:{1:yyMM.ddHH}]", Database.ActiveDatabase, Database.RevDate); this.Text = String.Format("About {0}", AssemblyTitle + " " + demoTxt); this.labelProductName.Text = AssemblyProduct; this.labelVersion.Text = String.Format("Version {0}", AssemblyVersion); this.labelVersionDateTime.Text = String.Format("Build Date: {0}", buildDateTime.ToString()); this.labelCopyright.Text = String.Format("Copyright © {0}. All Rights Reserved.", buildDateTime.Year.ToString()); this.labelCompanyName.Text = AssemblyCompany; // this.textBoxDescription.Text = AssemblyDescription; this.labelCompanyName.Links[0].LinkData = "Volian Enterprises Inc."; this.labelCompanyName.Links.Add(0,23,"www.volian.com"); //this.labelServer.Text = string.Format("SQL Server: {0}", server); this.labelServer.Text = string.Format("SQL Server: {0}", SQLServerName); // C2018-015 use static for this info. //if (databaseName == null) databaseName = Regex.Replace(connectionString, "^.*Initial Catalog=([^;]*);.*$", "$1", RegexOptions.IgnoreCase); //this.labelDatabase.Text = string.Format("Database: {0}", databaseName); this.labelDatabase.Text = string.Format("Database: {0}", DatabaseName); // C2018-015 use static for this info. } #region Assembly Attribute Accessors public string AssemblyTitle { get { // Get all Title attributes on this assembly object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyTitleAttribute), false); // If there is at least one Title attribute if (attributes.Length > 0) { // Select the first one AssemblyTitleAttribute titleAttribute = (AssemblyTitleAttribute)attributes[0]; // If it is not an empty string, return it if (titleAttribute.Title != "") return titleAttribute.Title; } // If there was no Title attribute, or if the Title attribute was the empty string, return the .exe name return System.IO.Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().CodeBase); } } public string AssemblyVersion { get { return Assembly.GetExecutingAssembly().GetName().Version.ToString(); } } // C2018-009 used to print the PROMS version number at the top of each PDF page public static string PROMSVersion { get { return Assembly.GetExecutingAssembly().GetName().Version.ToString(); } } public string AssemblyDescription { get { // Get all Description attributes on this assembly object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyDescriptionAttribute), false); // If there aren't any Description attributes, return an empty string if (attributes.Length == 0) return ""; // If there is a Description attribute, return its value return ((AssemblyDescriptionAttribute)attributes[0]).Description; } } public string AssemblyProduct { get { // Get all Product attributes on this assembly object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyProductAttribute), false); // If there aren't any Product attributes, return an empty string if (attributes.Length == 0) return ""; // If there is a Product attribute, return its value return ((AssemblyProductAttribute)attributes[0]).Product; } } public string AssemblyCompany { get { // Get all Company attributes on this assembly object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCompanyAttribute), false); // If there aren't any Company attributes, return an empty string if (attributes.Length == 0) return ""; // If there is a Company attribute, return its value return ((AssemblyCompanyAttribute)attributes[0]).Company; } } #endregion private void labelCompanyName_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { // Determine which link was clicked within the LinkLabel. this.labelCompanyName.Links[0].Visited = true; // Display the appropriate link based on the value of the // LinkData property of the Link object. string target = e.Link.LinkData as string; System.Diagnostics.Process.Start(target); // this should start the default web browser } private void logoPictureBox_Click(object sender, EventArgs e) { System.Diagnostics.Process.Start(labelCompanyName.Links[0].LinkData as string); // this should start the default web browser } private void btnViewEULA_Click(object sender, EventArgs e) { string EulaFile = string.Format(@"\{0}", VlnSettings.EULAfile); string strEULA = System.Environment.CurrentDirectory + EulaFile; frmViewTextFile ViewFile = new frmViewTextFile(strEULA,RichTextBoxStreamType.PlainText); ViewFile.Text = "End-User License Agreement"; ViewFile.ShowDialog(); } } }