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 { /// public partial class FrmMainForm : Form { private readonly String _configFile = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Genesis", ProgramConfig.SerialConfigFileName); /// /// Ctor /// 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(); } } }