diff --git a/EgwControlCenter.Core/ConfigManager.cs b/EgwControlCenter.Core/ConfigManager.cs new file mode 100644 index 0000000..0760778 --- /dev/null +++ b/EgwControlCenter.Core/ConfigManager.cs @@ -0,0 +1,73 @@ +using EgwControlCenter.Core.Models; +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace EgwControlCenter.Core +{ + public class ConfigManager + { + #region Public Constructors + + public ConfigManager(string appDir, string confName) + { + AppDir = appDir; + ConfName = confName; + // verifico path... + if (string.IsNullOrEmpty(AppDir)) + { + AppDir = AppDomain.CurrentDomain.BaseDirectory; + } + if (File.Exists(ConfPath)) + { + var rawData = File.ReadAllText(ConfPath); + if (!string.IsNullOrEmpty(rawData)) + { + CurrPatrolCont = JsonConvert.DeserializeObject(rawData) ?? new PatrolSettings(); + } + } + } + + #endregion Public Constructors + + #region Public Properties + + /// + /// Configurazione degli oggetti da monitorare + /// + public PatrolSettings CurrPatrolCont { get; set; } = new PatrolSettings(); + + #endregion Public Properties + + #region Public Methods + + public void SaveConfig() + { + var rawData = JsonConvert.SerializeObject(CurrPatrolCont, Formatting.Indented); + if (rawData != null && rawData.Length > 2) + { + File.WriteAllText(ConfPath, rawData); + } + } + + #endregion Public Methods + + #region Private Properties + + private string AppDir { get; set; } = ""; + private string ConfName { get; set; } = ""; + + /// + /// Path file di conf check + /// + private string ConfPath + { + get => Path.Combine(AppDir, ConfName); + } + + #endregion Private Properties + } +} \ No newline at end of file diff --git a/EgwControlCenter.Core/Models/ControlTarget.cs b/EgwControlCenter.Core/Models/ControlTarget.cs index e24f0a4..7452935 100644 --- a/EgwControlCenter.Core/Models/ControlTarget.cs +++ b/EgwControlCenter.Core/Models/ControlTarget.cs @@ -24,5 +24,10 @@ namespace EgwControlCenter.Core.Models /// Path di base da monitorare /// public string BasePath { get; set; } = ""; + + /// + /// Indica se il path sia abilitato + /// + public bool IsEnabled { get; set; } = true; } } diff --git a/EgwControlCenter.Core/PatrolSettings.cs b/EgwControlCenter.Core/PatrolSettings.cs index 0ce2ce3..931e76e 100644 --- a/EgwControlCenter.Core/PatrolSettings.cs +++ b/EgwControlCenter.Core/PatrolSettings.cs @@ -9,6 +9,23 @@ namespace EgwControlCenter.Core { public class PatrolSettings { + #region Public Properties + + /// + /// Tempo del tick-timer per verifica scadenza task di controllo + /// + public int RefreshIntSec { get; set; } = 30; + + /// + /// Elenco degli oggetti da monitorare per update + /// public List TargetList { get; set; } = new List(); + + /// + /// Veto prima di effettuare un nuovo controllo automatico + /// + public int VetoCheckMinutes { get; set; } = 1; + + #endregion Public Properties } -} +} \ No newline at end of file diff --git a/EgwControlCenter.Core/ReleaseChecker.cs b/EgwControlCenter.Core/ReleaseChecker.cs index b685c78..f013b0f 100644 --- a/EgwControlCenter.Core/ReleaseChecker.cs +++ b/EgwControlCenter.Core/ReleaseChecker.cs @@ -21,7 +21,7 @@ namespace EgwControlCenter.Core AppDir = appDir; DataDir = dataDir; ConfName = confName; - // verifico path... + // imposto veto controlli secondo config verifico path... if (string.IsNullOrEmpty(AppDir)) { AppDir = AppDomain.CurrentDomain.BaseDirectory; @@ -32,6 +32,8 @@ namespace EgwControlCenter.Core if (!string.IsNullOrEmpty(rawData)) { CurrPatrolCont = JsonConvert.DeserializeObject(rawData) ?? new PatrolSettings(); + // imposto il veto dalla conf... + AutoRefreshVeto = TimeSpan.FromMinutes(CurrPatrolCont.VetoCheckMinutes); } } // cerco se presente file status precedente e lo ricarico... @@ -49,6 +51,11 @@ namespace EgwControlCenter.Core #region Public Properties + /// + /// Configurazione degli oggetti da monitorare + /// + public PatrolSettings CurrPatrolCont { get; set; } = new PatrolSettings(); + /// /// Elenco degli oggetti stato dei programmi monitorati /// @@ -141,7 +148,7 @@ namespace EgwControlCenter.Core // se non forzato verifico file dello status salvato x necessità refresh if (!doRefresh) { - doRefresh = checkScaduto(); + doRefresh = CheckScaduto(); } // verifico se procedere... if (doRefresh) @@ -226,11 +233,6 @@ namespace EgwControlCenter.Core #region Protected Properties - /// - /// Configurazione degli oggetti da monitorare - /// - protected PatrolSettings CurrPatrolCont { get; set; } = new PatrolSettings(); - /// /// Elenco degli oggetti stato dei programmi monitorati /// @@ -320,7 +322,7 @@ namespace EgwControlCenter.Core /// Verifica se il check sia scaduto rispetto ad AutoRefreshVeto /// /// - private bool checkScaduto() + private bool CheckScaduto() { bool answ = false; DateTime adesso = DateTime.Now; diff --git a/EgwControlCenter/AccUtils.cs b/EgwControlCenter/AccUtils.cs index 61c2d50..436ec1e 100644 --- a/EgwControlCenter/AccUtils.cs +++ b/EgwControlCenter/AccUtils.cs @@ -10,7 +10,7 @@ namespace EgwControlCenter /// /// folder archiviazione dati configurazione (DATA\CONF) /// - public static string confDir + public static string ConfDir { get { @@ -18,6 +18,8 @@ namespace EgwControlCenter } } + public static string ConfName = "ConfPatrol.json"; + /// /// folder archiviazione dati storici giornalieri (DATA\DAT) /// @@ -80,7 +82,7 @@ namespace EgwControlCenter { get { - return string.Format(@"{0}\{1}", confDir, CRS("mainConfFile")); + return string.Format(@"{0}\{1}", ConfDir, CRS("mainConfFile")); } } diff --git a/EgwControlCenter/App.config b/EgwControlCenter/App.config index 9e682e6..d8710dc 100644 --- a/EgwControlCenter/App.config +++ b/EgwControlCenter/App.config @@ -3,20 +3,10 @@ - - - - - - - - - - - - + + diff --git a/EgwControlCenter/CheckPwd.Designer.cs b/EgwControlCenter/CheckPwd.Designer.cs new file mode 100644 index 0000000..8751480 --- /dev/null +++ b/EgwControlCenter/CheckPwd.Designer.cs @@ -0,0 +1,103 @@ +namespace EgwControlCenter +{ + partial class CheckPwd + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(CheckPwd)); + btnCheck = new Button(); + lblOut = new Label(); + txtPasswd = new TextBox(); + label2 = new Label(); + SuspendLayout(); + // + // btnCheck + // + btnCheck.Location = new Point(80, 88); + btnCheck.Name = "btnCheck"; + btnCheck.Size = new Size(118, 43); + btnCheck.TabIndex = 1; + btnCheck.Text = "Verifica"; + btnCheck.UseVisualStyleBackColor = true; + btnCheck.Click += btnCheck_Click; + // + // lblOut + // + lblOut.AutoSize = true; + lblOut.Location = new Point(12, 139); + lblOut.Name = "lblOut"; + lblOut.Size = new Size(96, 15); + lblOut.TabIndex = 1; + lblOut.Text = "...wait for input..."; + // + // txtPasswd + // + txtPasswd.Font = new Font("Segoe UI", 16F); + txtPasswd.Location = new Point(6, 32); + txtPasswd.Name = "txtPasswd"; + txtPasswd.PasswordChar = '*'; + txtPasswd.Size = new Size(267, 36); + txtPasswd.TabIndex = 0; + txtPasswd.KeyUp += txtPasswd_KeyUp; + // + // label2 + // + label2.AutoSize = true; + label2.Location = new Point(6, 9); + label2.Name = "label2"; + label2.Size = new Size(222, 15); + label2.TabIndex = 1; + label2.Text = "Password di autorizzazione alla modifica:"; + // + // CheckPwd + // + AutoScaleDimensions = new SizeF(7F, 15F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(277, 163); + Controls.Add(txtPasswd); + Controls.Add(label2); + Controls.Add(lblOut); + Controls.Add(btnCheck); + Icon = (Icon)resources.GetObject("$this.Icon"); + MaximizeBox = false; + MinimizeBox = false; + Name = "CheckPwd"; + SizeGripStyle = SizeGripStyle.Hide; + Text = "Verify User"; + Load += CheckPwd_Load; + ResumeLayout(false); + PerformLayout(); + } + + #endregion + + private Button btnCheck; + private Label lblOut; + private TextBox txtPasswd; + private Label label2; + } +} \ No newline at end of file diff --git a/EgwControlCenter/CheckPwd.cs b/EgwControlCenter/CheckPwd.cs new file mode 100644 index 0000000..b9122d1 --- /dev/null +++ b/EgwControlCenter/CheckPwd.cs @@ -0,0 +1,101 @@ +using EgwControlCenter.Core; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace EgwControlCenter +{ + public partial class CheckPwd : Form + { + #region Public Constructors + + public CheckPwd() + { + InitializeComponent(); + InitConf(); + } + + #endregion Public Constructors + + #region Private Fields + + private int dPos = 50; + private int maxTry = 3; + + #endregion Private Fields + + #region Private Properties + + /// + /// Oggetto gestione conf applicazione + /// + private ConfigManager AppConf { get; set; } = new ConfigManager("", ""); + + #endregion Private Properties + + #region Private Methods + + private void btnCheck_Click(object sender, EventArgs e) + { + checkPassword(); + } + + private void checkPassword() + { + // verifico la pwd... + if (txtPasswd.Text == "24068Seriate") + { + TargetSetup tgtForm = new TargetSetup(); + tgtForm.Show(); + Close(); + } + else + { + maxTry--; + // se ho superato num tentativi chiudo... + if (maxTry <= 0) + { + Close(); + } + else + { + txtPasswd.Text = ""; + lblOut.Text = $"Chiave errata: ancora {maxTry} tentativi ammessi"; + } + } + } + + private void CheckPwd_Load(object sender, EventArgs e) + { + FixPosition(); + } + + private void FixPosition() + { + Rectangle workArea = Screen.GetWorkingArea(this); + this.Location = new Point(workArea.Right - (Size.Width + dPos), workArea.Bottom - (Size.Height + dPos)); + } + + private void InitConf() + { + AppConf = new ConfigManager(AccUtils.ConfDir, AccUtils.ConfName); + txtPasswd.Focus(); + } + + private void txtPasswd_KeyUp(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.Enter) + { + checkPassword(); + } + } + + #endregion Private Methods + } +} \ No newline at end of file diff --git a/EgwControlCenter/CheckPwd.resx b/EgwControlCenter/CheckPwd.resx new file mode 100644 index 0000000..28f6d65 --- /dev/null +++ b/EgwControlCenter/CheckPwd.resx @@ -0,0 +1,287 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAEAMDAAAAEAIACoJQAAFgAAACgAAAAwAAAAYAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD8+vn/7ebe/+3n3//t59//7eff/+3n3//t59//7eff/+3n3//t59//7eff/+3n3//t59//7eff/+3n + 3//t59//7eff/+7n4P/u6OD/7ujg/+7o4P/u6OD/7ujg/+7o4P/u6OD/7ujg/+7o4P/u6OD/7ujg/+7o + 4P/u6OD/7ujg/+7o4P/v6eH/7+ni/+/p4v/v6eL/7+ni/+/p4v/v6eL/7+ni/+/p4v/v6eL/7+ni/+/p + 4v/v6eL/7+ni//r59//49fL/1saw/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bF + r//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bF + r//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bF + r//Wxa//1sWv/9bFr//Wxa//1sWv//Tw6//39fH/1saw/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bF + r//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bF + r//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bF + r//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv//Tw6//39fH/1saw/9bFr//Wxa//1sWv/9bF + r//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bF + r//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bF + r//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv//Tw6//39fH/1saw/9bF + r//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bF + r//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bF + r//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv//Tw + 6//39fH/1saw/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bF + r//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bF + r//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bF + r//Wxa//1sWv//Tw6//39fH/1saw/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bF + r//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bF + r//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bF + r//Wxa//1sWv/9bFr//Wxa//1sWv//Tw6//39PH/1saw/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bF + r//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bF + r//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bF + r//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv//Tw6//39PD/1sWw/9bFr//Wxa//1sWv/9bF + r//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bF + r//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bF + r//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv//Tw6//39PD/1sWw/9bF + r//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bF + r//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bF + r//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv//Tw + 6//39PD/1sWw/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//3dC//+jf1P/o39T/6N/U/+jf + 1P/o39T/6N/U/+jf1P/o39T/6N/U/+jf1P/o39T/6N/U/+jf1P/o39T/6N/U/+jf1P/o39T/6N/U/+jf + 1P/o39T/6N/U/+jf1P/o39T/6N/U/+jf1P/o39T/6N/U/+jf1P/o39T/6N/U/+jf1P/o39T/6N/U/+jf + 1P/o39T/6N/U//j28//39PD/1sWw/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//597U//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////39PD/1sWw/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bF + r//Wxa//597U//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////29PD/1sWw/9bFr//Wxa//1sWv/9bF + r//Wxa//1sWv/9bFr//Wxa//597U//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////28+//1sWv/9bF + r//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//597U//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///28+//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//597U//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////28+//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//597U//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////28+//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bF + r//Wxa//6N/U///////////////////////69fL/7dzR/+3c0f/t3NH/7dzR/+3d0v/t3dP/7d3T/+3d + 0//t3dP/7d3T/+3d0//t3dP/7d3T/+3d0//t3dP/7d3T/+3d0//t3dP/7d3T/+3d0//u3tT/7t/V/+7f + 1f/u39X/7t/V/+7f1f/u39X/7t/V/+7f1f/u39X/7t/V//r28//28+//1sWv/9bFr//Wxa//1sWv/9bF + r//Wxa//1sWv/9bFr//Wxa//6N/U///////////////////////9+/r/1amF/8mIOv/JiDr/yYg6/8mI + Ov/JiDr/yYg6/8mIOv/JiDr/yYg6/8mIOv/JiDr/yYg6/8mIOv/JiDr/yYg6/8mIOv/JiDr/yYg6/8mI + Ov/JiDr/yYg6/8mIOv/JiDr/yYg6/8mIOv/JiDr/yYg6/8mIOv/JiDr/yYg6//Hk3P/28+//1sWv/9bF + r//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//6N/U////////////////////////////9u3o/8yS + VP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJ + PP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8//Hk + 3P/28u7/1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//6N/U//////////////////// + /////////////+nUxv/Jij7/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJ + PP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJ + PP/JiTz/yYk8//Hk3P/18u7/1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//6N/U//// + //////////////////////////////79/P/ZspT/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJ + PP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJ + PP/JiTz/yYk8/8mJPP/JiTz/yYk8//Hk3P/18u7/1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bF + r//Wxa//6N/U///////////////////////////////////////48u//zpdh/8mJPP/JiTz/yYk8/8mJ + PP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJ + PP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8//Hk3P/18u7/1sWv/9bFr//Wxa//1sWv/9bF + r//Wxa//1sWv/9bFr//Wxa//6N/U////////////////////////////////////////////7NzQ/8mK + QP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJ + PP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8//Hk3P/18u7/1sWv/9bF + r//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//6N/U//////////////////////////////////// + //////////7+/928o//JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJ + PP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8//Hk + 3P/18u7/1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//6N/V//////////////////// + //////////////////////////////r29P/QnW3/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJ + PP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJ + PP/JiTz/yYk8//Hk3P/18e3/1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//6eDW//// + ///////////////////////////////////////////////////w49v/yoxH/8mJPP/JiTz/yYk8/8mJ + PP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJ + PP/JiTz/yYk8/8mJPP/JiTz/yYk8//Hk3P/18ez/1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bF + r//Wxa//6eDW/////////////////////////////////////////////////////////v7/4sWw/8mJ + PP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJ + PP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8//Hk3P/18ez/1sWv/9bFr//Wxa//1sWv/9bF + r//Wxa//1sWv/9bFr//Wxa//6eDW//////////////////////////////////////////////////// + /////////Pr4/9Slff/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJ + PP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8//Hk3P/18ez/1sWv/9bF + r//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//6eDW//////////////////////////////////// + //////////////////////////////Tq4//Lj07/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJ + PP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8//Hk + 3P/18ez/1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//6eDW//////////////////// + ///////////////////////////////////////////////////n0cL/0qJ3/9Kid//Sonf/0aB1/8qL + Qv/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJ + PP/JiTz/yYk8//Hk3P/18ez/1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//6eDW//// + //////////////////////////////////////////////////////////////////////7//v39//79 + /f/+/f3//v38/+DBq//JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJ + PP/JiTz/yYk8/8mJPP/JiTz/yYk8//Hk3P/18Oz/1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bF + r//Wxa//6eDW//////////////////////////////////////////////////////////////////// + //////////////////////////////v49v/Sonf/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJ + PP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8//Hk3P/08Ov/1sWv/9bFr//Wxa//1sWv/9bF + r//Wxa//1sWv/9bFr//Wxa//6eDW//////////////////////////////////////////////////// + ///////////////////////////////////////////////////y6OH/y45M/8mJPP/JiTz/yYk8/8mJ + PP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8//Hk3P/08Ov/1sWv/9bF + r//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//6eDW//////////////////////////////////// + ////////////////////////////////////////////////////////////////////////5Mu5/8mJ + Pf/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8//Hk + 3P/08Ov/1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//6uLZ//////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////fv6/9aqh//JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJ + PP/JiTz/yYk8//Hk3P/08Ov/1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//6uLZ//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////bu6f/Mklb/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJ + PP/JiTz/yYk8/8mJPP/JiTz/yYk8//Hk3P/08Ov/1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bF + r//Wxa//5t3R//j18v/49fL/+PXy//j18v/49fL/9/Tx//f08f/39PH/9/Tx//f08f/39PH/9/Tx//r4 + 9v/////////////////////////////////////////////////p1cf/yYo+/8mJPP/JiTz/yYk8/8mJ + PP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8//Hk3P/08Ov/1sWv/9bFr//Wxa//1sWv/9bF + r//Wxa//1sWv/9bFr//Wxa//1sWv/9bGsP/WxrD/1saw/9bGsP/WxrD/1sWw/9bFsP/WxbD/1sWw/9bF + sP/WxbD/1sWw/9vMuf/7+ff////////////////////////////////////////////+/fz/2rSW/8mJ + PP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8//Hk3P/z7+r/1sWv/9bF + r//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bF + r//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//j2Mv//v7+//////////////////////////////////// + ////////+fPw/8+YY//JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8//Hk + 3P/z7+r/1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bF + r//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//7ujg//////////////////// + /////////////////////////////+3d0//Ki0H/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJ + PP/JiTz/yYk8//Hk3P/z7+r/1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bF + r//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//2cm1//j1 + 8v/////////////////////////////////////////////+/v/evqb/yYk8/8mJPP/JiTz/yYk8/8mJ + PP/JiTz/yYk8/8mJPP/JiTz/yYk8//Hk3P/z7+r/1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bF + r//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bF + r//Wxa//1sWv/9/Sw//9/fz////////////////////////////////////////////79/X/0Z5x/8mJ + PP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8//Hk3P/z7+r/1sWv/9bFr//Wxa//1sWv/9bF + r//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bF + r//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//q4tn///////////////////////////////////////// + ////////8eXe/8uNSf/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8//Hk3P/z7+r/1sWv/9bF + r//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bF + r//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Xx7H/9fHs//////////////////// + ///////////////////////////+/+PHtP/JiTz/yYk8/8mJPP/JiTz/yYk8/8mJPP/JiTz/yYk8//Hk + 3P/z7un/1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bF + r//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//3M68//z7 + +f////////////////////////////////////////////36+f/Vp4H/yYk8/8mJPP/JiTz/yYk8/8mJ + PP/JiTz/yYk8//Hk3P/y7uj/1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bF + r//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bFr//Wxa//1sWv/9bF + r//Wxa//1sWv/+Xb0P///v7////////////////////////////////////////////17Ob/zJBR/8mJ + PP/JiTz/yYk8/8mJPP/JiTz/yYk8//Hk3P/59vP/6+Pa/+vj2v/r49r/6+Pa/+vj2v/r49r/6+Pa/+vj + 2v/r49r/6+Pa/+vj2v/r49r/6+Pa/+vj2v/r49r/6+Pa/+vj2v/r49r/6+Pa/+vj2v/r49r/6+Pa/+vj + 2v/r49r/6+Pa/+vj2v/r49r/6+Pa/+vk2//7+vj///////////////////////////////////////// + ////////7+DX/+XNvP/lzbz/5c28/+XNvP/lzbz/5c28//jy7v8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAA= + + + \ No newline at end of file diff --git a/EgwControlCenter/ConfPatrol.json b/EgwControlCenter/ConfPatrol.json index e401c96..e0a23d2 100644 --- a/EgwControlCenter/ConfPatrol.json +++ b/EgwControlCenter/ConfPatrol.json @@ -1,14 +1,24 @@ { + "RefreshIntSec": 60, + "VetoCheckMinutes": 600, "TargetList": [ { "Idx": 1, "ApplicationType": "Machine", - "BasePath": "C:\\EgtData\\Machine" + "BasePath": "C:\\EgtData\\Machines", + "IsEnabled": true }, { "Idx": 2, "ApplicationType": "Machine", - "BasePath": "C:\\Testing\\Machine" + "BasePath": "C:\\TechnoEssetre7\\EgalTech\\EgtCAM5\\Machines", + "IsEnabled": true + }, + { + "Idx": 3, + "ApplicationType": "Machine", + "BasePath": "C:\\Testing\\Machine", + "IsEnabled": false } ] } diff --git a/EgwControlCenter/ControlCenter.Designer.cs b/EgwControlCenter/ControlCenter.Designer.cs index c345dd3..1f8a24a 100644 --- a/EgwControlCenter/ControlCenter.Designer.cs +++ b/EgwControlCenter/ControlCenter.Designer.cs @@ -72,7 +72,7 @@ // btnSetup // btnSetup.Anchor = AnchorStyles.Top | AnchorStyles.Right; - btnSetup.Location = new Point(427, 13); + btnSetup.Location = new Point(446, 13); btnSetup.Name = "btnSetup"; btnSetup.Size = new Size(27, 23); btnSetup.TabIndex = 3; @@ -83,7 +83,7 @@ // btnUpdate // btnUpdate.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; - btnUpdate.Location = new Point(356, 223); + btnUpdate.Location = new Point(375, 223); btnUpdate.Name = "btnUpdate"; btnUpdate.Size = new Size(98, 23); btnUpdate.TabIndex = 4; @@ -110,7 +110,7 @@ statusStrip1.Items.AddRange(new ToolStripItem[] { tsLabelVers, tsLabelOut }); statusStrip1.Location = new Point(0, 249); statusStrip1.Name = "statusStrip1"; - statusStrip1.Size = new Size(463, 22); + statusStrip1.Size = new Size(482, 22); statusStrip1.TabIndex = 6; statusStrip1.Text = "statusStrip1"; // @@ -131,16 +131,16 @@ // dgView.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; dgView.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; - dgView.Location = new Point(12, 56); + dgView.Location = new Point(9, 42); dgView.Name = "dgView"; - dgView.Size = new Size(439, 161); + dgView.Size = new Size(461, 175); dgView.TabIndex = 7; // // ControlCenter // AutoScaleDimensions = new SizeF(7F, 15F); AutoScaleMode = AutoScaleMode.Font; - ClientSize = new Size(463, 271); + ClientSize = new Size(482, 271); Controls.Add(dgView); Controls.Add(statusStrip1); Controls.Add(lblOut); diff --git a/EgwControlCenter/ControlCenter.cs b/EgwControlCenter/ControlCenter.cs index 762a853..17efc10 100644 --- a/EgwControlCenter/ControlCenter.cs +++ b/EgwControlCenter/ControlCenter.cs @@ -21,6 +21,23 @@ namespace EgwControlCenter { InitializeComponent(); InitObjects(); + ForceReload(); + } + + private void ForceReload() + { + Stopwatch sw = new Stopwatch(); + sw.Start(); + // rileggo conf x modifiche + CurrCheck = new ReleaseChecker(ConfDir, DataDir, AccUtils.ConfName); + // effettua un refresh del controllo status... + locCheckOk = CurrCheck.UpdateLocalStatus(true); + if (locCheckOk) + { + remCheckOk = CurrCheck.CheckRemoteReleases(); + } + sw.Stop(); + DisplayCheckResult(sw.Elapsed); } #endregion Public Constructors @@ -41,6 +58,9 @@ namespace EgwControlCenter /// private static Logger Log = LogManager.GetCurrentClassLogger(); + private string ConfDir = ""; + private string DataDir = ""; + #endregion Private Fields #region Private Properties @@ -58,35 +78,13 @@ namespace EgwControlCenter private void btnSetup_Click(object sender, EventArgs e) { - string authPwd = Interaction.InputBox("Prego inserire pwd per abilitare lo sblocco", "Verifica Utente", "", 10, 10); - //verifico passphrase - if (authPwd == "24068Seriate") - { - TargetSetup tgtForm = new TargetSetup(); - tgtForm.Show(); - } - else - { - string message = "La passphrase inserita non è corretta. Impossibile procedere"; - string caption = "Auth Error"; - MessageBoxButtons buttons = MessageBoxButtons.OK; - DialogResult result; - result = MessageBox.Show(message, caption, buttons); - } + CheckPwd tgtForm = new CheckPwd(); + tgtForm.Show(); } private void btnUpdate_Click(object sender, EventArgs e) { - Stopwatch sw = new Stopwatch(); - sw.Start(); - // effettua un refresh del controllo status... - locCheckOk = CurrCheck.UpdateLocalStatus(true); - if (locCheckOk) - { - remCheckOk = CurrCheck.CheckRemoteReleases(); - } - sw.Stop(); - DisplayCheckResult(sw.Elapsed); + ForceReload(); } /// @@ -207,17 +205,21 @@ namespace EgwControlCenter { CurrAssembly = System.Reflection.Assembly.GetExecutingAssembly().GetName(); Log.Trace($"EgalWare's AppControlCenter Init, v.{CurrAssembly.Version}"); + // in primis setup configurazione... + ConfDir = AccUtils.ConfDir; + DataDir = Environment.GetEnvironmentVariable("ClickOnce_DataDirectory") ?? AccUtils.dataDir; + CurrCheck = new ReleaseChecker(ConfDir, DataDir, "ConfPatrol.json"); + Log.Trace($"Folder Setup | {ConfDir} | {DataDir}"); + //timerCheck.Interval = AccUtils.CRI("timerCheckMs"); + timerCheck.Interval = (CurrCheck.CurrPatrolCont.RefreshIntSec * 1000); + // sistemo grafica TRAY ICON SetupTrayIcon(); CreateTrayMenu(); - // recupero info deploy... - string confDir = AccUtils.confDir; - string dataDir = Environment.GetEnvironmentVariable("ClickOnce_DataDirectory") ?? AccUtils.dataDir; - Log.Trace($"Folder Setup | {confDir} | {dataDir}"); - // init obj gestione check... - CurrCheck = new ReleaseChecker(confDir, dataDir, "ConfPatrol.json"); + // sistemo timer + timerCheck.Start(); + // notifica update... tsLabelVers.Text = $"EACC v.{CurrAssembly.Version}"; tsLabelOut.Text = $"Last Check: {CurrCheck.LastChecked():yyyy-MM-dd HH:mm:ss}"; - timerCheck.Start(); Log.Trace($"Started timer | {timerCheck.Interval} ms"); } @@ -296,10 +298,6 @@ namespace EgwControlCenter { if (e.ClickedItem.Text.StartsWith("Close")) { -#if false - // stop child adapters... - closeAllChild(); -#endif // chiudo! Close(); } diff --git a/EgwControlCenter/EgwControlCenter.csproj b/EgwControlCenter/EgwControlCenter.csproj index 69c52fe..3b03ec3 100644 --- a/EgwControlCenter/EgwControlCenter.csproj +++ b/EgwControlCenter/EgwControlCenter.csproj @@ -6,17 +6,24 @@ enable true enable - 1.0.0.7 + 1.0.2409.1916 + + + + + + + Always + + + - - Always - Always diff --git a/EgwControlCenter/Properties/PublishProfiles/ClickOnceProfile.pubxml b/EgwControlCenter/Properties/PublishProfiles/ClickOnceProfile.pubxml index 6abe0c5..89e58e7 100644 --- a/EgwControlCenter/Properties/PublishProfiles/ClickOnceProfile.pubxml +++ b/EgwControlCenter/Properties/PublishProfiles/ClickOnceProfile.pubxml @@ -4,8 +4,8 @@ https://go.microsoft.com/fwlink/?LinkID=208121. --> - 1 - 1.0.0.* + 1916 + 1.0.2409.1916 True Release True @@ -13,7 +13,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121. True Web https://iis01.egalware.com/EgalWare/ACC/ - True + False True True False @@ -45,16 +45,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121. - - - - - - Include - true - File - - + diff --git a/EgwControlCenter/Properties/PublishProfiles/ClickOnceProfile.pubxml.user b/EgwControlCenter/Properties/PublishProfiles/ClickOnceProfile.pubxml.user index 0574aad..8779782 100644 --- a/EgwControlCenter/Properties/PublishProfiles/ClickOnceProfile.pubxml.user +++ b/EgwControlCenter/Properties/PublishProfiles/ClickOnceProfile.pubxml.user @@ -2,4 +2,9 @@ - \ No newline at end of file + + + True|2024-09-19T14:16:06.4269267Z||;True|2024-09-19T15:43:14.5803096+02:00||; + + + \ No newline at end of file diff --git a/EgwControlCenter/TargetSetup.Designer.cs b/EgwControlCenter/TargetSetup.Designer.cs index df20e82..349fd03 100644 --- a/EgwControlCenter/TargetSetup.Designer.cs +++ b/EgwControlCenter/TargetSetup.Designer.cs @@ -29,19 +29,86 @@ private void InitializeComponent() { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(TargetSetup)); + dgView = new DataGridView(); + btnReload = new Button(); + btnSave = new Button(); + statusStrip1 = new StatusStrip(); + tsLabelOut = new ToolStripStatusLabel(); + ((System.ComponentModel.ISupportInitialize)dgView).BeginInit(); + statusStrip1.SuspendLayout(); SuspendLayout(); // + // dgView + // + dgView.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; + dgView.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells; + dgView.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + dgView.Location = new Point(11, 35); + dgView.Name = "dgView"; + dgView.Size = new Size(521, 141); + dgView.TabIndex = 1; + // + // btnReload + // + btnReload.Location = new Point(11, 6); + btnReload.Name = "btnReload"; + btnReload.Size = new Size(75, 23); + btnReload.TabIndex = 2; + btnReload.Text = "Cancel"; + btnReload.UseVisualStyleBackColor = true; + btnReload.Click += btnReload_Click; + // + // btnSave + // + btnSave.Anchor = AnchorStyles.Top | AnchorStyles.Right; + btnSave.Location = new Point(457, 6); + btnSave.Name = "btnSave"; + btnSave.Size = new Size(75, 23); + btnSave.TabIndex = 3; + btnSave.Text = "Save"; + btnSave.UseVisualStyleBackColor = true; + btnSave.Click += btnSave_Click; + // + // statusStrip1 + // + statusStrip1.Items.AddRange(new ToolStripItem[] { tsLabelOut }); + statusStrip1.Location = new Point(0, 179); + statusStrip1.Name = "statusStrip1"; + statusStrip1.Size = new Size(544, 22); + statusStrip1.TabIndex = 4; + statusStrip1.Text = "statusStrip1"; + // + // tsLabelOut + // + tsLabelOut.Name = "tsLabelOut"; + tsLabelOut.Size = new Size(16, 17); + tsLabelOut.Text = "..."; + // // TargetSetup // AutoScaleDimensions = new SizeF(7F, 15F); AutoScaleMode = AutoScaleMode.Font; - ClientSize = new Size(800, 450); + ClientSize = new Size(544, 201); + Controls.Add(statusStrip1); + Controls.Add(btnSave); + Controls.Add(btnReload); + Controls.Add(dgView); Icon = (Icon)resources.GetObject("$this.Icon"); Name = "TargetSetup"; - Text = "TargetSetup"; + Text = "Setup Applicazioni Monitorate"; + Load += TargetSetup_Load; + ((System.ComponentModel.ISupportInitialize)dgView).EndInit(); + statusStrip1.ResumeLayout(false); + statusStrip1.PerformLayout(); ResumeLayout(false); + PerformLayout(); } #endregion + private DataGridView dgView; + private Button btnReload; + private Button btnSave; + private StatusStrip statusStrip1; + private ToolStripStatusLabel tsLabelOut; } } \ No newline at end of file diff --git a/EgwControlCenter/TargetSetup.cs b/EgwControlCenter/TargetSetup.cs index 24c8a09..d50599e 100644 --- a/EgwControlCenter/TargetSetup.cs +++ b/EgwControlCenter/TargetSetup.cs @@ -1,4 +1,6 @@ -using System; +using EgwControlCenter.Core; +using EgwControlCenter.Core.Models; +using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; @@ -12,9 +14,80 @@ namespace EgwControlCenter { public partial class TargetSetup : Form { + #region Public Constructors + public TargetSetup() { InitializeComponent(); + LoadPatrolConfig(); + ReloadDGV(); } + + #endregion Public Constructors + + #region Private Fields + + private int dPos = 20; + private int minHeight = 120; + + #endregion Private Fields + + #region Private Properties + + /// + /// Oggetto gestione conf applicazione + /// + private ConfigManager AppConf { get; set; } = new ConfigManager("", ""); + + #endregion Private Properties + + #region Private Methods + + private void btnReload_Click(object sender, EventArgs e) + { + ReloadDGV(); + } + + private void btnSave_Click(object sender, EventArgs e) + { + AppConf.SaveConfig(); + ReloadDGV(); + } + + private void FixPosition() + { + // ricalcolo altezza in base a num oggetti... + if (AppConf.CurrPatrolCont.TargetList.Count > 0) + { + int newHeight = minHeight + 40 * (AppConf.CurrPatrolCont.TargetList.Count); + Size = new Size(Size.Width, newHeight); + } + Rectangle workArea = Screen.GetWorkingArea(this); + this.Location = new Point(workArea.Right - (Size.Width + dPos), workArea.Bottom - (Size.Height + dPos)); + } + + private void LoadPatrolConfig() + { + string confDir = AccUtils.ConfDir; + } + + private void ReloadDGV() + { + AppConf = new ConfigManager(AccUtils.ConfDir, AccUtils.ConfName); + var list = new BindingList(AppConf.CurrPatrolCont.TargetList); + dgView.DataSource = list; + dgView.Columns[0].HeaderCell.Value = "ID"; + dgView.Columns[1].HeaderCell.Value = "Tipo"; + dgView.Columns[2].HeaderCell.Value = "Base Directory Path"; + dgView.Columns[3].HeaderCell.Value = "Act"; + tsLabelOut.Text = $"{DateTime.Now: yyyy-MM-dd HH:mm:ss}"; + } + + private void TargetSetup_Load(object sender, EventArgs e) + { + FixPosition(); + } + + #endregion Private Methods } -} +} \ No newline at end of file diff --git a/EgwControlCenter/TargetSetup.resx b/EgwControlCenter/TargetSetup.resx index 28f6d65..2a51dfc 100644 --- a/EgwControlCenter/TargetSetup.resx +++ b/EgwControlCenter/TargetSetup.resx @@ -117,6 +117,9 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 17, 17 +