164 lines
6.0 KiB
C#
164 lines
6.0 KiB
C#
using System;
|
|
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 = $"{Database.ActiveDatabase}[SQL:{Database.RevDate:yyMM.ddHH}]";
|
|
}
|
|
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)";
|
|
Text = $"About {AssemblyTitle} {demoTxt}";
|
|
labelProductName.Text = AssemblyProduct;
|
|
labelVersion.Text = $"Version {AssemblyVersion}";
|
|
labelVersionDateTime.Text = $"Build Date: {buildDateTime}";
|
|
labelCopyright.Text = $"Copyright © {buildDateTime.Year}. All Rights Reserved.";
|
|
labelCompanyName.Text = AssemblyCompany;
|
|
labelCompanyName.Links[0].LinkData = "Volian Enterprises Inc.";
|
|
labelCompanyName.Links.Add(0,23,"www.volian.com");
|
|
labelServer.Text = $"SQL Server: {SQLServerName}"; // C2018-015 use static for this info.
|
|
labelDatabase.Text = $"Database: {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 => 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 => 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.
|
|
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 = $@"\{VlnSettings.EULAfile}";
|
|
string strEULA = System.Environment.CurrentDirectory + EulaFile;
|
|
frmViewTextFile ViewFile = new frmViewTextFile(strEULA, RichTextBoxStreamType.PlainText)
|
|
{
|
|
Text = "End-User License Agreement"
|
|
};
|
|
ViewFile.ShowDialog();
|
|
}
|
|
|
|
}
|
|
}
|