Rich 6a973a288b Added Objects DebugProfile and DebugDBTrack for command-line parameters /Profile and /DBTrack
Added code to retrieve command-line parameters.
Added property CalledFromCSLA to retrieve the CSLA object and method used by DBTracking.
Added ProfileTimer object to track CPU using by methods
2015-01-19 20:52:32 +00:00

210 lines
6.0 KiB
C#

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Configuration;
using System.Reflection;
namespace Volian.Base.Library
{
public static class VlnSettings
{
// This is used to toggle the colored text during the Data Conversion
// and will set the font and background in PROMS 2010 for Demo/Release mode (white background black text)
// or for Debug mode (shaded background, and color text on PDF output
// For PROMS 2010, this is set via the App.config setting:
// <appSettings>
// <add key ="OperatingMode" value ="Debug"|"Demo"|"Production"/>
// For DataLoader, this is set via the Debug checkbox on the form.
private static bool WasLoaded = false;
private static bool _DebugPagination = false;
public static bool DebugPagination
{
get { return VlnSettings._DebugPagination; }
set { VlnSettings._DebugPagination = value; }
}
private static bool _DebugText = false;
public static bool DebugText
{
get { return VlnSettings._DebugText; }
set { VlnSettings._DebugText = value; }
}
private static bool _DebugMode = false;
public static bool DebugMode
{
get
{
if (!WasLoaded) LoadOperatingMode();
return _DebugMode;
}
set { _DebugMode = value; }
}
private static bool _DemoMode = false;
public static bool DemoMode
{
get
{
if (!WasLoaded) LoadOperatingMode();
return _DemoMode;
}
set { _DemoMode = value; }
}
private static bool _ProductionMode = true; // default to OperatingMode to production
public static bool ProductionMode
{
get
{
if (!WasLoaded) LoadOperatingMode();
return _ProductionMode;
}
set { _ProductionMode = value; }
}
private static bool _OriginalPageBreak = false; // default to not using 16bit pagebreaks
public static bool OriginalPageBreak
{
get
{
if (!WasLoaded) LoadOperatingMode();
return _OriginalPageBreak;
}
set { _OriginalPageBreak = value; }
}
private static bool _ComparePROMStoPROMSPDF = false; // default to compare 16-bit generated PDFs
public static bool ComparePROMStoPROMSPDF
{
get
{
if (!WasLoaded) LoadOperatingMode();
return _ComparePROMStoPROMSPDF;
}
set { _ComparePROMStoPROMSPDF = value; }
}
public static string GetCommand(string commandName, string def)
{
string[] parameters = System.Environment.CommandLine.Split(" ".ToCharArray());
foreach (string parameter in parameters)
{
if (parameter.ToUpper().StartsWith("/" + commandName.ToUpper() + "="))
{
return parameter.Substring(commandName.Length + 2);
}
}
return def;
}
public static float GetCommandFloat(string commandName, float def)
{
string[] parameters = System.Environment.CommandLine.Split(" ".ToCharArray());
foreach (string parameter in parameters)
{
if (parameter.ToUpper().StartsWith("/" + commandName.ToUpper() + "="))
{
float result = def;
if (float.TryParse(parameter.Substring(commandName.Length + 2), out result))
return result;
else
return def;
}
}
return def;
}
public static bool GetCommandFlag(string commandName)
{
string[] parameters = System.Environment.CommandLine.Split(" ".ToCharArray());
foreach (string parameter in parameters)
{
if (parameter.ToUpper().Equals("/" + commandName.ToUpper()))
return true;
}
return false;
}
private static void LoadOperatingMode()
{
string opMode = ConfigurationManager.AppSettings["OperatingMode"];
opMode = GetCommand("MODE",opMode);
if (opMode != null && opMode != "")
{
_DebugMode = opMode.ToUpper() == "DEBUG";
_DemoMode = opMode.ToUpper() == "DEMO";
_ProductionMode = opMode.ToUpper() == "PRODUCTION";
_ComparePROMStoPROMSPDF = _DebugMode;
}
string pageBreak = ConfigurationManager.AppSettings["OriginalPageBreak"];
if (pageBreak != null && pageBreak != "")
{
_OriginalPageBreak = pageBreak.ToUpper() == "TRUE";
}
WasLoaded = true;
}
private static string _TemporaryFolder = null;
public static string TemporaryFolder
{
get
{
if (_TemporaryFolder == null)
{
// This will create a Temp\VE-PROMS folder in the LocalSettings Folder.
//XP - C:\Documents and Settings\{user}\Local Settings\Application Data\Temp\VEPROMS
//Vista - C:\Users\{user}\AppData\Local\Temp\VEPROMS
_TemporaryFolder = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + @"\Temp";
if (!Directory.Exists(TemporaryFolder)) Directory.CreateDirectory(TemporaryFolder);
_TemporaryFolder += @"\VEPROMS";
if (!Directory.Exists(TemporaryFolder)) Directory.CreateDirectory(TemporaryFolder);
}
return _TemporaryFolder;
}
}
private static string _UserID=Environment.UserName.ToUpper();
public static string UserID
{
get { return VlnSettings._UserID; }
set { VlnSettings._UserID = value; }
}
private static bool _StepTypeToolTip = false;
public static bool StepTypeToolType
{
get { return VlnSettings._StepTypeToolTip; }
set { VlnSettings._StepTypeToolTip = value; }
}
private static string _ReleaseMode = null;
public static string ReleaseMode
{
get
{
if (_ReleaseMode == null)
{
string relType = "RELEASE"; // default to normal Release Mode setting
// Get the type of release:
// "Demo", "Westinghouse", "Release"
object[] attributes = Assembly.GetEntryAssembly().GetCustomAttributes(typeof(AssemblyConfigurationAttribute), false);
if (attributes.Length > 0)
relType = ((AssemblyConfigurationAttribute)attributes[0]).Configuration.ToUpper();
_ReleaseMode = relType;
}
return _ReleaseMode;
}
}
private static string _EULAfile = null;
public static string EULAfile
{
get {
if (_EULAfile == null)
{
switch (ReleaseMode)
{
case "DEMO": // Demo CD/DVD release
_EULAfile = "DemoEULA.txt";
break;
case "WESTINGHOUSE":
_EULAfile = "WestinghouseEULA.txt";
break;
default:
_EULAfile = "EULA.txt";
break;
}
}
return _EULAfile;
}
}
}
}