Files
laatzen/Common/Ui/GenesisToolBox/frmMainForm.cs
T

486 lines
15 KiB
C#

using GenesisToolBox;
using System;
using System.Drawing;
using System.IO;
using System.Reflection;
using System.Windows.Forms;
using Xylem.Common.CommonCore.Consts;
using Xylem.Common.Ui.GenesisToolBox.Ctls;
using Xylem.Common.Ui.GenesisToolBox.Infrastructure;
using Xylem.Common.Utils.Logging;
namespace Xylem.Common.Ui.GenesisToolBox
{
/// <inheritdoc />
public partial class FrmMainForm : Form
{
private readonly String _configFile = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData),
"Genesis", ProgramConfig.SerialConfigFileName);
/// <summary>
/// Ctor
/// </summary>
public FrmMainForm()
{
this.InitializeComponent();
this.InitializeFormState();
var logger = NLogHelper.CreateOrGetLogger("GenesisToolBox");
var version = Assembly.GetExecutingAssembly().GetName().Version;
logger.Info($"GenesisToolBox Version: {version.Major}.{version.Minor}.{version.Build}");
//bool valid = false;
//using (System.DirectoryServices.AccountManagement.PrincipalContext context = new PrincipalContext(ContextType.Domain))
//{
// valid = context.ValidateCredentials("drabesch_ro", "password");
//}
lblVersionNumber.Text = $@"Version: {version.Major}.{version.Minor}.{version.Build}";
}
private void InitializeFormState()
{
foreach (var control in this.Controls)
{
if (control is GroupBox groupBox)
{
groupBox.Hide();
}
}
this.btnSetup.Tag = SoftwareFunctions.GENERAL_SETUP;
this.btnAlarm.Tag = SoftwareFunctions.GENERAL_ALARM;
this.btnRegisterStore.Tag = SoftwareFunctions.GENERAL_REGISTER_STORE;
this.btnTempLogger.Tag = SoftwareFunctions.GENERAL_TEMP_METER;
this.btnStreamingQuality.Tag = SoftwareFunctions.GENERAL_STREAM_QUALITY;
this.btnFwUpdate.Tag = SoftwareFunctions.GENERAL_FIRMWARE_UPDATE;
this.btnLutUpdate.Tag = SoftwareFunctions.GENERAL_LUT_UPDATE;
this.button4.Tag = SoftwareFunctions.GENERAL_LUT_MANAGEMENT;
this.btnPressure.Tag = SoftwareFunctions.GENERAL_PRESSURE_LOG;
this.button1.Tag = SoftwareFunctions.GENERAL_PULS_CONFIG;
this.btnPassword.Tag = SoftwareFunctions.LAA_PASSWORD;
this.btnRegHistory.Tag = SoftwareFunctions.LAA_REGISTER_HISTORY;
this.btnPara.Tag = SoftwareFunctions.LAA_PARAMETERIZATION;
this.button2.Tag = SoftwareFunctions.LAA_PROCESS_PARAMETER;
this.button5.Tag = SoftwareFunctions.LAA_MAPPING_NA;
this.btnLegacyTestApp.Tag = SoftwareFunctions.DEV_LEGACY_TEST_APP;
this.btnFiles.Tag = SoftwareFunctions.DEV_FILE_CONTROL;
this.BtnFileSplit.Tag = SoftwareFunctions.DEV_FILE_SPLIT;
this.btnLowLevelTools.Tag = SoftwareFunctions.DEV_LOW_LEVEL_TOOLS;
if (!ApplicationState.Initialized)
{
this.Controls.Add(new Label()
{
Dock = DockStyle.Fill,
Text = ApplicationState.UNAVAILABLE,
TextAlign = ContentAlignment.MiddleCenter,
Font = new Font(FontFamily.GenericSansSerif, 10, FontStyle.Bold),
ForeColor = Color.DarkRed,
Padding = new Padding(15)
});
}
else if (!ApplicationState.IsAuthorized)
{
this.Controls.Add(new LoginForm(this.LoginFormSubmitted));
}
else
{
this.ShowAvailableSoftwareFunctions();
}
}
private void LoginFormSubmitted(string username, string password, object sender)
{
if (sender is LoginForm loginForm)
{
var errorMessage = default(string);
if (ApplicationState.Authorize(username, password, out errorMessage))
{
this.Controls.Remove(loginForm);
this.ShowAvailableSoftwareFunctions();
}
loginForm.ShowError(errorMessage);
}
}
private void ShowAvailableSoftwareFunctions()
{
foreach (var control in this.Controls)
{
if (control is GroupBox groupBox)
{
foreach (var groupBoxControl in groupBox.Controls)
{
if (groupBoxControl is Button button && button.Tag is SoftwareFunctions softwareFunction)
{
button.Enabled = ApplicationState.IsEnabled(softwareFunction);
}
}
groupBox.Show();
}
}
}
private void btnSetup_Click(Object sender, EventArgs e)
{
var form = new FrmSetup();
form.Show();
form.Closed += Form_Closed;
Hide();
}
private void Form_Closed(Object sender, EventArgs e)
{
Show();
}
private void btnPassword_Click(Object sender, EventArgs e)
{
var form = new FrmPassword();
form.Show();
form.Closed += Form_Closed;
Hide();
}
private void btnRegisterStore_Click(Object sender, EventArgs e)
{
var form = new FrmRegisterStore();
form.Show();
form.Closed += Form_Closed;
Hide();
}
private void FrmMainForm_Load(Object sender, EventArgs e)
{
var versionString = "NA";
Boolean access;
btnFiles.Enabled = true;
try
{
var assemblyName = Assembly.GetExecutingAssembly().GetName();
versionString = $@"Version: {assemblyName.Version.Major}.{assemblyName.Version.Minor}.{assemblyName.Version.Build}";
access = Logic.SoftwareAccessHelper.Access.HasAccess(assemblyName);
}
catch (Exception ex)
{
MessageBox.Show("GenesisToolBox\n\n" +
"Starting in OfflineMode\n\n" +
$"Your version ({versionString}) could not be verified Error\n\n" +
ex.Message);
Close();
CheckConfigs();
foreach (var item in Controls)
{
if (item is Button btn)
{
btn.Enabled = btn.Name == btnSetup.Name || btn.Name == btnRegisterStore.Name;
}
}
return;
}
if (!access)
{
MessageBox.Show("GenesisToolBox\n\n" +
"Your version licence has expired\n\n" +
versionString);
Close();
}
if (System.Diagnostics.Debugger.IsAttached)
{
btnFiles.Enabled = true;
}
CheckConfigs();
//if (false)
//{
// gpLAA.Enabled = false;
// gbDeveloper.Enabled = false;
// foreach (var item in gpGerneral.Controls)
// {
// if (item is Button btn)
// {
// btn.Enabled = false;
// }
// }
// btnPressure.Enabled = true;
//}
}
private void CheckConfigs()
{
var nLogFile = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData),
"Genesis", ProgramConfig.NlogConfig);
var dir = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Genesis");
if (!Directory.Exists(dir))
{
Directory.CreateDirectory(dir);
}
if (!File.Exists(nLogFile))
{
const String fileCop = ProgramConfig.NlogConfig;
try
{
File.Copy(fileCop, nLogFile);
}
catch (Exception)
{
MessageBox.Show(@"Unable to create log files!");
}
}
if (!File.Exists(_configFile))
{
//btnZeroFlow.Enabled = false;
//btnOBS.Enabled = false;
btnRegisterStore.Enabled = false;
btnPassword.Enabled = false;
var text = "Configuration file cannot be found!\nExecute setup.";
MessageBox.Show(text);
}
}
//private void BtnLegacyTestApp_Click(Object sender, EventArgs e)
//{
// var form = new FrmLegacyTestApp();
// form.Show();
// form.Closed += Form_Closed;
// Hide();
//}
private void btnAlarm_Click(Object sender, EventArgs e)
{
var form = new FrmAlarmMng();
form.Show();
form.Closed += Form_Closed;
Hide();
}
private void btnTempLogger_Click(Object sender, EventArgs e)
{
//String command = " -h"; //common help flag for console apps
//System.Diagnostics.Process pRun;
//pRun = new System.Diagnostics.Process();
//pRun.EnableRaisingEvents = true;
//pRun.Exited += new EventHandler(pRun_Exited);
//pRun.StartInfo.FileName = "TempLogger.exe";
//pRun.StartInfo.Arguments = command;
//pRun.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal;
//pRun.Start();
//pRun.WaitForExit();
var form = new FrmTempMeter();
form.Show();
form.Closed += Form_Closed;
Hide();
}
//private void pRun_Exited(Object sender, EventArgs e)
//{
// //Do Something Here
//}
private void btnRelatePCbID_Click(Object sender, EventArgs e)
{
var form = new FrmResearchMapping();
form.Show();
form.Closed += Form_Closed;
Hide();
}
private void btnStreamingQuality_Click(Object sender, EventArgs e)
{
var form = new FrmStreamingQuality();
form.Show();
form.Closed += Form_Closed;
Hide();
}
private void btnFwUpdate_Click(Object sender, EventArgs e)
{
var form = new FrmFwUpdate();
form.Show();
form.Closed += Form_Closed;
Hide();
}
private void btnCalender_Click(Object sender, EventArgs e)
{
var form = new frmCalenderSeconds();
form.Show();
form.Closed += Form_Closed;
Hide();
}
private void btnCustomerText_Click(Object sender, EventArgs e)
{
var form = new FrmConfigurations();
form.Show();
form.Closed += Form_Closed;
Hide();
}
private void btnFiles_Click(Object sender, EventArgs e)
{
var form = new FrmFileCURD();
form.Show();
form.Closed += Form_Closed;
Hide();
}
//private void btnFWMulti_Click(object sender, EventArgs e)
//{
// var form = new FrmMultiUpdate();
// form.Show();
// form.Closed += Form_Closed;
// Hide();
//}
private void btnRegHistory_Click(Object sender, EventArgs e)
{
var form = new FrmRegisterHistory();
form.Show();
form.Closed += Form_Closed;
Hide();
}
private void btnCalibrationResult_Click(Object sender, EventArgs e)
{
var form = new FrmRawDataInterpreter();
form.Show();
form.Closed += Form_Closed;
Hide();
}
private void BtnFileSplit_Click(Object sender, EventArgs e)
{
var form = new FrmLogSplit();
form.Show();
form.Closed += Form_Closed;
Hide();
}
private void btnPara_Click(Object sender, EventArgs e)
{
var form = new FrmParameterization();
form.Show();
form.Closed += Form_Closed;
Hide();
}
private void btnLegacyTestApp_Click(Object sender, EventArgs e)
{
var form = new FrmLegacyTestApp();
form.Show();
form.Closed += Form_Closed;
Hide();
}
private void btnPressure_Click(Object sender, EventArgs e)
{
var form = new FrmPressure();
form.Show();
form.Closed += Form_Closed;
Hide();
}
private void button1_Click(Object sender, EventArgs e)
{
var form = new FrmLog();
form.Show();
form.Closed += Form_Closed;
Hide();
}
private void button2_Click(Object sender, EventArgs e)
{
var form = new FrmTempMeter();
form.Show();
form.Closed += Form_Closed;
Hide();
}
private void gbDeveloper_Enter(Object sender, EventArgs e)
{
}
private void button2_Click_1(Object sender, EventArgs e)
{
var form = new FrmProductionData();
form.Show();
form.Closed += Form_Closed;
Hide();
}
private void btnLutUpdate_Click(Object sender, EventArgs e)
{
var form = new FrmLutUpdate();
form.Show();
form.Closed += Form_Closed;
Hide();
}
private void button4_Click(Object sender, EventArgs e)
{
var form = new FrmLutManagement();
form.Show();
form.Closed += Form_Closed;
Hide();
}
private void button5_Click(Object sender, EventArgs e)
{
var form = new FrmMasterMapping();
form.Show();
form.Closed += Form_Closed;
Hide();
}
private void button1_Click_1(Object sender, EventArgs e)
{
var form = new FrmConfigurations();
form.Show();
form.Closed += Form_Closed;
Hide();
}
private void btnLog_Click(Object sender, EventArgs e)
{
var form = new FrmLowLevelTools();
form.Show();
form.Closed += Form_Closed;
Hide();
}
}
}