diff --git a/Client/View/NcWindow.cs b/Client/View/NcWindow.cs index 9caa7712..7b8b21d5 100644 --- a/Client/View/NcWindow.cs +++ b/Client/View/NcWindow.cs @@ -437,8 +437,11 @@ namespace CMS_Client.View //Show Nc Window public static void ShowNcWindow() { - if (windowstarted) - ShowWindow(ncprocess.MainWindowHandle, SW_SHOWNOACTIVATE); + if (windowstarted) + { + ShowWindow(ncprocess.MainWindowHandle, SW_SHOWNOACTIVATE); + ResizeAndMoveNcWindow(ncWindowX, ncWindowY, ncWindowWidth, ncWindowHeight); + } } //Show Prod Window diff --git a/Libs/CMS_CORE_Library.dll b/Libs/CMS_CORE_Library.dll index a0e99a96..dff8f077 100644 Binary files a/Libs/CMS_CORE_Library.dll and b/Libs/CMS_CORE_Library.dll differ diff --git a/Step.Core/ThreadsFunctions.cs b/Step.Core/ThreadsFunctions.cs index 6e95ad69..b77fa1e3 100644 --- a/Step.Core/ThreadsFunctions.cs +++ b/Step.Core/ThreadsFunctions.cs @@ -299,6 +299,11 @@ public static class ThreadsFunctions else // Send through signalR MessageServices.Current.Publish(SEND_EXPIRED_MAINTENANCES_DATA, null, expiredMaintenances); + + //Manage Candies + libraryError = ncHandler.ManageCandies(); + if (libraryError.errorCode != 0) + ManageLibraryError(libraryError); } else RestoreConnection(); diff --git a/Step.NC/NcHandler.cs b/Step.NC/NcHandler.cs index ddf199cd..8cac606e 100644 --- a/Step.NC/NcHandler.cs +++ b/Step.NC/NcHandler.cs @@ -1162,6 +1162,91 @@ namespace Step.NC return max; } + public CmsError ManageCandies() + { + CmsError cmsError; + int NcCandy = 0; + int NCMatr, PCMatr; + long NCParam, PCParam,newParam; + bool bNC_OK, bPC_OK; + bool bNC_VALID, bPC_VALID; + String strMachNumber="0"; + int machNumber; + bool bRewrite=false; + + + //Read Machine ID + cmsError = numericalControl.NC_RMachineNumber(ref strMachNumber); + if (cmsError.IsError()) + return cmsError; + machNumber = Int32.Parse(strMachNumber); + + //Read Data from NC & elaborate it + cmsError = numericalControl.PLC_RCandy(ref NcCandy); + if (cmsError.IsError()) + return cmsError; + bNC_OK = CandiesController.getDataFromLincense(NcCandy, out NCMatr, out NCParam); + bNC_VALID = machNumber == NCMatr; + + //Read Data from PC + bPC_OK = CandiesController.getPCLincense(out PCMatr, out PCParam); + bPC_VALID = machNumber == PCMatr; + + if(bNC_VALID & bPC_VALID) + { + if(PCParam == NCParam) + { + newParam = PCParam + Utils.CandiesController.BASE_TIME; + bRewrite = false; + } + else if(PCParam < NCParam) + { + newParam = PCParam + Utils.CandiesController.BASE_TIME; + bRewrite = true; + } + else + { + newParam = NCParam + Utils.CandiesController.BASE_TIME; + bRewrite = true; + } + } + else if (bNC_VALID) + { + newParam = NCParam + Utils.CandiesController.BASE_TIME; + bRewrite = true; + } + else if (bPC_VALID) + { + newParam = PCParam + Utils.CandiesController.BASE_TIME; + bRewrite = true; + } + else + { + // tutto a zero? immagino sia la prima accensione + if () + } + + Else + 'tutto a zero? immagino sia la prima accensione + If nLicReg_X = 0 And nLicCnc_X = 0 Then + nData = BASETIME + bRewrite = True + + 'ho creato il file? immagino sia la prima accensione con memorie cn sporche + ElseIf nLicReg_X = 0 And bFileCreated Then + bFileCreated = False + nData = BASETIME + bRewrite = True + + Else + 'a questo punto blocco.. ipotizzo una forzatura + nData = 0 + bRewrite = False + End If + End If + } + + //DTOScadaModel scada = new DTOScadaModel //{ // Layers = prodScada.Layers.Select(x => new DTOScadaLayerModel() diff --git a/Step.UI/PasswordForm.Designer.cs b/Step.UI/PasswordForm.Designer.cs new file mode 100644 index 00000000..6a533981 --- /dev/null +++ b/Step.UI/PasswordForm.Designer.cs @@ -0,0 +1,155 @@ +namespace Step.UI +{ + partial class PasswordForm + { + /// + /// 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() + { + this.components = new System.ComponentModel.Container(); + this.Panel1 = new System.Windows.Forms.Panel(); + this.TextBox_Password = new System.Windows.Forms.TextBox(); + this.Label_NewPassword = new System.Windows.Forms.Label(); + this.TableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.OK_Pwd_Button = new System.Windows.Forms.Button(); + this.Cancel_Pwd_Button = new System.Windows.Forms.Button(); + this.ErrorProvider1 = new System.Windows.Forms.ErrorProvider(this.components); + this.Panel1.SuspendLayout(); + this.TableLayoutPanel1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.ErrorProvider1)).BeginInit(); + this.SuspendLayout(); + // + // Panel1 + // + this.Panel1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.Panel1.BackColor = System.Drawing.Color.White; + this.Panel1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.Panel1.Controls.Add(this.TextBox_Password); + this.Panel1.Controls.Add(this.Label_NewPassword); + this.Panel1.Location = new System.Drawing.Point(-6, -2); + this.Panel1.Name = "Panel1"; + this.Panel1.Size = new System.Drawing.Size(354, 70); + this.Panel1.TabIndex = 4; + // + // TextBox_Password + // + this.TextBox_Password.Font = new System.Drawing.Font("Tahoma", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.TextBox_Password.Location = new System.Drawing.Point(114, 25); + this.TextBox_Password.Name = "TextBox_Password"; + this.TextBox_Password.PasswordChar = '*'; + this.TextBox_Password.Size = new System.Drawing.Size(186, 26); + this.TextBox_Password.TabIndex = 1; + this.TextBox_Password.UseSystemPasswordChar = true; + this.TextBox_Password.KeyDown += new System.Windows.Forms.KeyEventHandler(this.TextBox_Password_KeyDown); + // + // Label_NewPassword + // + this.Label_NewPassword.AutoSize = true; + this.Label_NewPassword.Font = new System.Drawing.Font("Tahoma", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.Label_NewPassword.Location = new System.Drawing.Point(31, 28); + this.Label_NewPassword.Name = "Label_NewPassword"; + this.Label_NewPassword.Size = new System.Drawing.Size(69, 18); + this.Label_NewPassword.TabIndex = 7; + this.Label_NewPassword.Tag = "Password"; + this.Label_NewPassword.Text = "Password"; + // + // TableLayoutPanel1 + // + this.TableLayoutPanel1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.TableLayoutPanel1.ColumnCount = 2; + this.TableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.TableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.TableLayoutPanel1.Controls.Add(this.OK_Pwd_Button, 0, 0); + this.TableLayoutPanel1.Controls.Add(this.Cancel_Pwd_Button, 1, 0); + this.TableLayoutPanel1.Location = new System.Drawing.Point(106, 79); + this.TableLayoutPanel1.Name = "TableLayoutPanel1"; + this.TableLayoutPanel1.RowCount = 1; + this.TableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.TableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 46F)); + this.TableLayoutPanel1.Size = new System.Drawing.Size(219, 46); + this.TableLayoutPanel1.TabIndex = 3; + // + // OK_Pwd_Button + // + this.OK_Pwd_Button.Anchor = System.Windows.Forms.AnchorStyles.None; + this.OK_Pwd_Button.Location = new System.Drawing.Point(3, 3); + this.OK_Pwd_Button.Name = "OK_Pwd_Button"; + this.OK_Pwd_Button.Size = new System.Drawing.Size(103, 39); + this.OK_Pwd_Button.TabIndex = 5; + this.OK_Pwd_Button.Text = "OK"; + this.OK_Pwd_Button.Click += new System.EventHandler(this.OK_Pwd_Button_Click); + // + // Cancel_Pwd_Button + // + this.Cancel_Pwd_Button.Anchor = System.Windows.Forms.AnchorStyles.None; + this.Cancel_Pwd_Button.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.Cancel_Pwd_Button.Location = new System.Drawing.Point(112, 3); + this.Cancel_Pwd_Button.Name = "Cancel_Pwd_Button"; + this.Cancel_Pwd_Button.Size = new System.Drawing.Size(103, 39); + this.Cancel_Pwd_Button.TabIndex = 6; + this.Cancel_Pwd_Button.Tag = "Cancel"; + this.Cancel_Pwd_Button.Text = "Cancel"; + this.Cancel_Pwd_Button.Click += new System.EventHandler(this.Cancel_Pwd_Button_Click); + // + // ErrorProvider1 + // + this.ErrorProvider1.ContainerControl = this; + // + // PasswordForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(337, 137); + this.ControlBox = false; + this.Controls.Add(this.Panel1); + this.Controls.Add(this.TableLayoutPanel1); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "PasswordForm"; + this.ShowInTaskbar = false; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Password"; + this.Load += new System.EventHandler(this.PasswordForm_Load); + this.Panel1.ResumeLayout(false); + this.Panel1.PerformLayout(); + this.TableLayoutPanel1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.ErrorProvider1)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + internal System.Windows.Forms.Panel Panel1; + internal System.Windows.Forms.TextBox TextBox_Password; + internal System.Windows.Forms.Label Label_NewPassword; + internal System.Windows.Forms.TableLayoutPanel TableLayoutPanel1; + internal System.Windows.Forms.Button OK_Pwd_Button; + internal System.Windows.Forms.Button Cancel_Pwd_Button; + internal System.Windows.Forms.ErrorProvider ErrorProvider1; + } +} \ No newline at end of file diff --git a/Step.UI/PasswordForm.cs b/Step.UI/PasswordForm.cs new file mode 100644 index 00000000..9b9a5a1b --- /dev/null +++ b/Step.UI/PasswordForm.cs @@ -0,0 +1,114 @@ +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 Step.UI +{ + public partial class PasswordForm : Form + { + public String Matricola; + private DateTime Licenza; + const long BASETIME = 730119; // 1/1/2000 + + public PasswordForm() + { + InitializeComponent(); + } + + public void setMatricola(String matr) + { + this.Matricola = matr; + this.Text = "Password - " + this.Matricola; + } + + private void Cancel_Pwd_Button_Click(object sender, EventArgs e) + { + this.DialogResult = DialogResult.Cancel; + this.Close(); + } + + private void OK_Pwd_Button_Click(object sender, EventArgs e) + { + checkPSW(TextBox_Password.Text); + } + + private void PasswordForm_Load(object sender, EventArgs e) + { + TextBox_Password.Text = ""; + this.ActiveControl = TextBox_Password; + } + + private void TextBox_Password_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.Enter) + { + checkPSW(TextBox_Password.Text); + } + } + + private void checkPSW(String psw) + { + bool bValid = false; + long Parameter; + int Matr, Command; + + //Password storica. Serve per abilitare funzionalità particolari + if (psw == "cmsserviceonly") + bValid = true; + + else if (Utils.CandiesController.PasswordDecode(psw, out Matr, out Command, out Parameter)) + + //Controllo la matricola + if (this.Matricola != Matr.ToString()) + bValid = false; + else + { + switch (Command) + { + //password del service + case 1: bValid = true;break; + + //SET Licenza Temporanea + case 2: + Licenza = new DateTime(Parameter * TimeSpan.TicksPerDay); + bValid = false; + break; + + //SET Licenza Illimitata + case 3: + Licenza = new DateTime(0); + bValid = false; + break; + + } + bValid = false; + } + else + bValid = false; + + if (!bValid) + { + long nLic = Licenza.Ticks / TimeSpan.TicksPerDay; + string szError; + + if (nLic == BASETIME) + szError = "Error #H-OO"; + else + szError = "Error #H-" + nLic.ToString(); + ErrorProvider1.SetError(TextBox_Password, "INVALID PASSWORD" + Environment.NewLine + szError); + } + else + { + this.DialogResult = DialogResult.OK; + this.Close(); + } + } + + } +} diff --git a/Step.UI/PasswordForm.resx b/Step.UI/PasswordForm.resx new file mode 100644 index 00000000..72c11b48 --- /dev/null +++ b/Step.UI/PasswordForm.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + 17, 17 + + \ No newline at end of file diff --git a/Step.UI/ServerControlWindow.Designer.cs b/Step.UI/ServerControlWindow.Designer.cs index b5343c9b..9fafb368 100644 --- a/Step.UI/ServerControlWindow.Designer.cs +++ b/Step.UI/ServerControlWindow.Designer.cs @@ -35,20 +35,29 @@ namespace Step.UI this.StepNotifyIcon = new System.Windows.Forms.NotifyIcon(this.components); this.NotifyIconMenu = new System.Windows.Forms.ContextMenuStrip(this.components); this.StopServerItem = new System.Windows.Forms.ToolStripMenuItem(); - this.openUiButton = new MetroFramework.Controls.MetroButton(); - this.metroTabControl1 = new MetroFramework.Controls.MetroTabControl(); - this.ThreadsInfo = new MetroFramework.Controls.MetroTabPage(); - this.LISTThreadStatus = new MetroFramework.Controls.MetroListView(); + this.adminMachineToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.passwordToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.goBackToStandardModeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripSeparator = new System.Windows.Forms.ToolStripSeparator(); + this.resetSpindleHoursToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.TXTstatus = new System.Windows.Forms.TextBox(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.stopServerButton = new System.Windows.Forms.Button(); + this.openUiButton = new System.Windows.Forms.Button(); + this.panel1 = new System.Windows.Forms.Panel(); + this.label3 = new System.Windows.Forms.Label(); + this.TXTVersion = new System.Windows.Forms.Label(); + this.label1 = new System.Windows.Forms.Label(); + this.TXTType = new System.Windows.Forms.Label(); + this.CHNcConnected = new System.Windows.Forms.CheckBox(); + this.label2 = new System.Windows.Forms.Label(); + this.TXTMachId = new System.Windows.Forms.Label(); + this.LISTThreadStatus = new System.Windows.Forms.ListView(); this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); - this.stopServerButton = new MetroFramework.Controls.MetroButton(); - this.TXTstatus = new MetroFramework.Controls.MetroTextBox(); - this.TXTType = new System.Windows.Forms.Label(); - this.CHNcConnected = new MetroFramework.Controls.MetroCheckBox(); - this.label1 = new System.Windows.Forms.Label(); this.NotifyIconMenu.SuspendLayout(); - this.metroTabControl1.SuspendLayout(); - this.ThreadsInfo.SuspendLayout(); + this.tableLayoutPanel1.SuspendLayout(); + this.panel1.SuspendLayout(); this.SuspendLayout(); // // StepNotifyIcon @@ -63,10 +72,11 @@ namespace Step.UI // NotifyIconMenu // this.NotifyIconMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.StopServerItem}); + this.StopServerItem, + this.adminMachineToolStripMenuItem}); this.NotifyIconMenu.Name = "NotifyIconMenu"; this.NotifyIconMenu.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional; - this.NotifyIconMenu.Size = new System.Drawing.Size(167, 26); + this.NotifyIconMenu.Size = new System.Drawing.Size(167, 48); // // StopServerItem // @@ -75,184 +85,239 @@ namespace Step.UI this.StopServerItem.Text = "Close CMS Server"; this.StopServerItem.Click += new System.EventHandler(this.StopServerItem_Click); // - // openUiButton + // adminMachineToolStripMenuItem // - this.openUiButton.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; - this.openUiButton.Location = new System.Drawing.Point(11, 371); - this.openUiButton.Name = "openUiButton"; - this.openUiButton.Size = new System.Drawing.Size(151, 42); - this.openUiButton.TabIndex = 1; - this.openUiButton.TabStop = false; - this.openUiButton.Text = "Open CMS-Active Client"; - this.openUiButton.UseSelectable = true; - this.openUiButton.Click += new System.EventHandler(this.OpenUiButton_Click); + this.adminMachineToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.passwordToolStripMenuItem, + this.goBackToStandardModeToolStripMenuItem, + this.toolStripSeparator, + this.resetSpindleHoursToolStripMenuItem}); + this.adminMachineToolStripMenuItem.Name = "adminMachineToolStripMenuItem"; + this.adminMachineToolStripMenuItem.Size = new System.Drawing.Size(166, 22); + this.adminMachineToolStripMenuItem.Text = "Service"; // - // metroTabControl1 + // passwordToolStripMenuItem // - this.metroTabControl1.Controls.Add(this.ThreadsInfo); - this.metroTabControl1.Location = new System.Drawing.Point(8, 26); - this.metroTabControl1.Name = "metroTabControl1"; - this.metroTabControl1.SelectedIndex = 0; - this.metroTabControl1.Size = new System.Drawing.Size(328, 323); - this.metroTabControl1.TabIndex = 7; - this.metroTabControl1.UseSelectable = true; + this.passwordToolStripMenuItem.Name = "passwordToolStripMenuItem"; + this.passwordToolStripMenuItem.Size = new System.Drawing.Size(214, 22); + this.passwordToolStripMenuItem.Text = "Password"; + this.passwordToolStripMenuItem.Click += new System.EventHandler(this.passwordToolStripMenuItem_Click); // - // ThreadsInfo + // goBackToStandardModeToolStripMenuItem // - this.ThreadsInfo.Controls.Add(this.LISTThreadStatus); - this.ThreadsInfo.HorizontalScrollbarBarColor = true; - this.ThreadsInfo.HorizontalScrollbarHighlightOnWheel = false; - this.ThreadsInfo.HorizontalScrollbarSize = 10; - this.ThreadsInfo.Location = new System.Drawing.Point(4, 38); - this.ThreadsInfo.Name = "ThreadsInfo"; - this.ThreadsInfo.Size = new System.Drawing.Size(320, 281); - this.ThreadsInfo.TabIndex = 1; - this.ThreadsInfo.Text = "Active Threads Info"; - this.ThreadsInfo.VerticalScrollbarBarColor = true; - this.ThreadsInfo.VerticalScrollbarHighlightOnWheel = false; - this.ThreadsInfo.VerticalScrollbarSize = 10; + this.goBackToStandardModeToolStripMenuItem.Name = "goBackToStandardModeToolStripMenuItem"; + this.goBackToStandardModeToolStripMenuItem.Size = new System.Drawing.Size(214, 22); + this.goBackToStandardModeToolStripMenuItem.Text = "Go back to standard mode"; + this.goBackToStandardModeToolStripMenuItem.Visible = false; + this.goBackToStandardModeToolStripMenuItem.Click += new System.EventHandler(this.goBackToStandardModeToolStripMenuItem_Click); // - // LISTThreadStatus + // toolStripSeparator // - this.LISTThreadStatus.Alignment = System.Windows.Forms.ListViewAlignment.Default; - this.LISTThreadStatus.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.LISTThreadStatus.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { - this.columnHeader1, - this.columnHeader2}); - this.LISTThreadStatus.Font = new System.Drawing.Font("Segoe UI", 12F); - this.LISTThreadStatus.FullRowSelect = true; - this.LISTThreadStatus.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None; - this.LISTThreadStatus.Location = new System.Drawing.Point(-4, 0); - this.LISTThreadStatus.MultiSelect = false; - this.LISTThreadStatus.Name = "LISTThreadStatus"; - this.LISTThreadStatus.OwnerDraw = true; - this.LISTThreadStatus.Scrollable = false; - this.LISTThreadStatus.ShowGroups = false; - this.LISTThreadStatus.Size = new System.Drawing.Size(331, 275); - this.LISTThreadStatus.TabIndex = 2; - this.LISTThreadStatus.UseCompatibleStateImageBehavior = false; - this.LISTThreadStatus.UseSelectable = true; - this.LISTThreadStatus.UseStyleColors = true; - this.LISTThreadStatus.View = System.Windows.Forms.View.Details; + this.toolStripSeparator.Name = "toolStripSeparator"; + this.toolStripSeparator.Size = new System.Drawing.Size(211, 6); + this.toolStripSeparator.Visible = false; // - // columnHeader1 + // resetSpindleHoursToolStripMenuItem // - this.columnHeader1.Text = "Name"; - this.columnHeader1.Width = 233; - // - // columnHeader2 - // - this.columnHeader2.Text = "Exec. Time"; - this.columnHeader2.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - this.columnHeader2.Width = 84; - // - // stopServerButton - // - this.stopServerButton.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; - this.stopServerButton.Location = new System.Drawing.Point(188, 371); - this.stopServerButton.Name = "stopServerButton"; - this.stopServerButton.Size = new System.Drawing.Size(151, 42); - this.stopServerButton.TabIndex = 3; - this.stopServerButton.TabStop = false; - this.stopServerButton.Text = "Close Active"; - this.stopServerButton.UseSelectable = true; - this.stopServerButton.Click += new System.EventHandler(this.StopServerButton_Click); + this.resetSpindleHoursToolStripMenuItem.Name = "resetSpindleHoursToolStripMenuItem"; + this.resetSpindleHoursToolStripMenuItem.Size = new System.Drawing.Size(214, 22); + this.resetSpindleHoursToolStripMenuItem.Text = "Reset Spindle Hours"; + this.resetSpindleHoursToolStripMenuItem.Visible = false; // // TXTstatus // this.TXTstatus.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); - // - // - // - this.TXTstatus.CustomButton.Image = null; - this.TXTstatus.CustomButton.Location = new System.Drawing.Point(324, 2); - this.TXTstatus.CustomButton.Name = ""; - this.TXTstatus.CustomButton.Size = new System.Drawing.Size(25, 25); - this.TXTstatus.CustomButton.Style = MetroFramework.MetroColorStyle.Blue; - this.TXTstatus.CustomButton.TabIndex = 1; - this.TXTstatus.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light; - this.TXTstatus.CustomButton.UseSelectable = true; - this.TXTstatus.CustomButton.Visible = false; + this.tableLayoutPanel1.SetColumnSpan(this.TXTstatus, 2); this.TXTstatus.Enabled = false; - this.TXTstatus.Lines = new string[] { - "..."}; - this.TXTstatus.Location = new System.Drawing.Point(-1, 419); - this.TXTstatus.MaxLength = 32767; + this.TXTstatus.Location = new System.Drawing.Point(3, 416); this.TXTstatus.Name = "TXTstatus"; - this.TXTstatus.PasswordChar = '\0'; this.TXTstatus.ReadOnly = true; - this.TXTstatus.ScrollBars = System.Windows.Forms.ScrollBars.None; - this.TXTstatus.SelectedText = ""; - this.TXTstatus.SelectionLength = 0; - this.TXTstatus.SelectionStart = 0; - this.TXTstatus.ShortcutsEnabled = true; - this.TXTstatus.Size = new System.Drawing.Size(352, 30); + this.TXTstatus.Size = new System.Drawing.Size(435, 20); this.TXTstatus.TabIndex = 8; this.TXTstatus.Text = "..."; - this.TXTstatus.UseSelectable = true; - this.TXTstatus.WaterMarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(109))))); - this.TXTstatus.WaterMarkFont = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel); // - // TXTType + // tableLayoutPanel1 // - this.TXTType.AutoSize = true; - this.TXTType.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.TXTType.Location = new System.Drawing.Point(179, 348); - this.TXTType.Name = "TXTType"; - this.TXTType.Size = new System.Drawing.Size(51, 13); - this.TXTType.TabIndex = 53; - this.TXTType.Text = "NcType"; + this.tableLayoutPanel1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tableLayoutPanel1.ColumnCount = 2; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.Controls.Add(this.stopServerButton, 1, 2); + this.tableLayoutPanel1.Controls.Add(this.openUiButton, 0, 2); + this.tableLayoutPanel1.Controls.Add(this.TXTstatus, 0, 3); + this.tableLayoutPanel1.Controls.Add(this.panel1, 0, 1); + this.tableLayoutPanel1.Controls.Add(this.LISTThreadStatus, 0, 0); + this.tableLayoutPanel1.Location = new System.Drawing.Point(12, 12); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 3; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 89F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 54F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(441, 438); + this.tableLayoutPanel1.TabIndex = 58; // - // CHNcConnected + // stopServerButton // - this.CHNcConnected.AutoCheck = false; - this.CHNcConnected.ForeColor = System.Drawing.SystemColors.ControlText; - this.CHNcConnected.Location = new System.Drawing.Point(246, 345); - this.CHNcConnected.Name = "CHNcConnected"; - this.CHNcConnected.Size = new System.Drawing.Size(81, 20); - this.CHNcConnected.TabIndex = 52; - this.CHNcConnected.Text = "Connected"; - this.CHNcConnected.UseSelectable = true; + this.stopServerButton.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.stopServerButton.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.stopServerButton.Location = new System.Drawing.Point(223, 362); + this.stopServerButton.Name = "stopServerButton"; + this.stopServerButton.Size = new System.Drawing.Size(215, 48); + this.stopServerButton.TabIndex = 3; + this.stopServerButton.TabStop = false; + this.stopServerButton.Text = "Close Active"; + this.stopServerButton.Click += new System.EventHandler(this.StopServerButton_Click); + // + // openUiButton + // + this.openUiButton.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.openUiButton.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.openUiButton.Location = new System.Drawing.Point(3, 362); + this.openUiButton.Name = "openUiButton"; + this.openUiButton.Size = new System.Drawing.Size(214, 48); + this.openUiButton.TabIndex = 58; + this.openUiButton.TabStop = false; + this.openUiButton.Text = "Open CMS-Active Client"; + // + // panel1 + // + this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tableLayoutPanel1.SetColumnSpan(this.panel1, 2); + this.panel1.Controls.Add(this.label3); + this.panel1.Controls.Add(this.TXTVersion); + this.panel1.Controls.Add(this.label1); + this.panel1.Controls.Add(this.TXTType); + this.panel1.Controls.Add(this.CHNcConnected); + this.panel1.Controls.Add(this.label2); + this.panel1.Controls.Add(this.TXTMachId); + this.panel1.Location = new System.Drawing.Point(3, 273); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(435, 83); + this.panel1.TabIndex = 9; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(3, 49); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(104, 13); + this.label3.TabIndex = 59; + this.label3.Text = "CMS-Active Version:"; + // + // TXTVersion + // + this.TXTVersion.AutoSize = true; + this.TXTVersion.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.TXTVersion.Location = new System.Drawing.Point(113, 49); + this.TXTVersion.Name = "TXTVersion"; + this.TXTVersion.Size = new System.Drawing.Size(19, 13); + this.TXTVersion.TabIndex = 58; + this.TXTVersion.Text = "---"; // // label1 // this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(134, 348); + this.label1.Location = new System.Drawing.Point(3, 24); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(44, 13); this.label1.TabIndex = 54; this.label1.Text = "Vendor:"; // + // TXTType + // + this.TXTType.AutoSize = true; + this.TXTType.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.TXTType.Location = new System.Drawing.Point(48, 24); + this.TXTType.Name = "TXTType"; + this.TXTType.Size = new System.Drawing.Size(19, 13); + this.TXTType.TabIndex = 53; + this.TXTType.Text = "---"; + // + // CHNcConnected + // + this.CHNcConnected.AutoCheck = false; + this.CHNcConnected.ForeColor = System.Drawing.SystemColors.ControlText; + this.CHNcConnected.Location = new System.Drawing.Point(340, 24); + this.CHNcConnected.Name = "CHNcConnected"; + this.CHNcConnected.Size = new System.Drawing.Size(81, 20); + this.CHNcConnected.TabIndex = 52; + this.CHNcConnected.Text = "Connected"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(142, 24); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(63, 13); + this.label2.TabIndex = 57; + this.label2.Text = "Machine Id:"; + // + // TXTMachId + // + this.TXTMachId.AutoSize = true; + this.TXTMachId.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.TXTMachId.Location = new System.Drawing.Point(240, 24); + this.TXTMachId.Name = "TXTMachId"; + this.TXTMachId.Size = new System.Drawing.Size(19, 13); + this.TXTMachId.TabIndex = 56; + this.TXTMachId.Text = "---"; + // + // LISTThreadStatus + // + this.LISTThreadStatus.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.columnHeader1, + this.columnHeader2}); + this.tableLayoutPanel1.SetColumnSpan(this.LISTThreadStatus, 2); + this.LISTThreadStatus.Dock = System.Windows.Forms.DockStyle.Fill; + this.LISTThreadStatus.Location = new System.Drawing.Point(3, 3); + this.LISTThreadStatus.Name = "LISTThreadStatus"; + this.LISTThreadStatus.Size = new System.Drawing.Size(435, 264); + this.LISTThreadStatus.TabIndex = 59; + this.LISTThreadStatus.UseCompatibleStateImageBehavior = false; + this.LISTThreadStatus.View = System.Windows.Forms.View.Details; + // + // columnHeader1 + // + this.columnHeader1.Text = "Thread Name"; + this.columnHeader1.Width = 328; + // + // columnHeader2 + // + this.columnHeader2.Text = "Time"; + this.columnHeader2.Width = 78; + // // ServerControlWindow // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(350, 449); - this.Controls.Add(this.label1); - this.Controls.Add(this.TXTType); - this.Controls.Add(this.CHNcConnected); - this.Controls.Add(this.TXTstatus); - this.Controls.Add(this.stopServerButton); - this.Controls.Add(this.metroTabControl1); - this.Controls.Add(this.openUiButton); + this.ClientSize = new System.Drawing.Size(465, 462); + this.Controls.Add(this.tableLayoutPanel1); this.ForeColor = System.Drawing.SystemColors.ControlText; this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.Margin = new System.Windows.Forms.Padding(2); this.MaximizeBox = false; this.MinimizeBox = false; this.Name = "ServerControlWindow"; - this.Resizable = false; - this.ShadowType = MetroFramework.Forms.MetroFormShadowType.AeroShadow; this.ShowInTaskbar = false; - this.Theme = MetroFramework.MetroThemeStyle.Default; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.ServerControlWindow_FormClosing); + this.Load += new System.EventHandler(this.ServerControlWindow_Load); this.NotifyIconMenu.ResumeLayout(false); - this.metroTabControl1.ResumeLayout(false); - this.ThreadsInfo.ResumeLayout(false); + this.tableLayoutPanel1.ResumeLayout(false); + this.tableLayoutPanel1.PerformLayout(); + this.panel1.ResumeLayout(false); + this.panel1.PerformLayout(); this.ResumeLayout(false); - this.PerformLayout(); } @@ -260,16 +325,25 @@ namespace Step.UI private System.Windows.Forms.NotifyIcon StepNotifyIcon; private System.Windows.Forms.ContextMenuStrip NotifyIconMenu; private System.Windows.Forms.ToolStripMenuItem StopServerItem; - private MetroFramework.Controls.MetroButton openUiButton; - private MetroFramework.Controls.MetroTabControl metroTabControl1; - private MetroFramework.Controls.MetroButton stopServerButton; - private MetroFramework.Controls.MetroTabPage ThreadsInfo; - private MetroFramework.Controls.MetroListView LISTThreadStatus; - private System.Windows.Forms.ColumnHeader columnHeader1; - private System.Windows.Forms.ColumnHeader columnHeader2; - private MetroFramework.Controls.MetroTextBox TXTstatus; - private Label TXTType; - private MetroFramework.Controls.MetroCheckBox CHNcConnected; + private System.Windows.Forms.TextBox TXTstatus; + private ToolStripMenuItem adminMachineToolStripMenuItem; + private ToolStripMenuItem passwordToolStripMenuItem; + private TableLayoutPanel tableLayoutPanel1; + private Button stopServerButton; + private Button openUiButton; + private Panel panel1; + private Label label3; + private Label TXTVersion; private Label label1; + private Label TXTType; + private CheckBox CHNcConnected; + private Label label2; + private Label TXTMachId; + private ListView LISTThreadStatus; + private ColumnHeader columnHeader1; + private ColumnHeader columnHeader2; + private ToolStripMenuItem goBackToStandardModeToolStripMenuItem; + private ToolStripSeparator toolStripSeparator; + private ToolStripMenuItem resetSpindleHoursToolStripMenuItem; } } \ No newline at end of file diff --git a/Step.UI/ServerControlWindow.cs b/Step.UI/ServerControlWindow.cs index a4167629..79b7be62 100644 --- a/Step.UI/ServerControlWindow.cs +++ b/Step.UI/ServerControlWindow.cs @@ -1,9 +1,12 @@ using Step.Model; +using Step.Model.DTOModels; +using Step.NC; using System; using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics; using System.IO; +using System.Reflection; using System.Threading; using System.Windows.Forms; using TeamDev.SDK.MVVM; @@ -12,15 +15,20 @@ using static Step.Model.Constants; namespace Step.UI { - public partial class ServerControlWindow : MetroFramework.Forms.MetroForm + public partial class ServerControlWindow : Form { private bool ncStatus = false; private bool isUpdatingThreads = false; private List MVVMListeners; + private static ServerControlWindow ctrlwindow = null; + PasswordForm PswForm; public ServerControlWindow() { - InitializeComponent(); + InitializeComponent(); + + if (ServerStartupConfig.AutoOpenCmsClient) + this.Opacity = 0; //Begin the update LISTThreadStatus.BeginUpdate(); @@ -29,7 +37,14 @@ namespace Step.UI //Add all items LISTThreadStatus.Items.Add(new ListViewItem(new string[] { "TryNcConnection", "---" })); //End the update - LISTThreadStatus.EndUpdate(); + LISTThreadStatus.EndUpdate(); + + Version v = Assembly.GetEntryAssembly().GetName().Version; + DateTime buildDate = new DateTime(2000, 1, 1).AddDays(v.Build).AddSeconds(v.Revision * 2); + this.Text = "CMS-Active Control Window"; + TXTVersion.Text = "V" + v + " ("+ buildDate.ToString("d") + ")"; + + PswForm = new PasswordForm(); if (NcConfig != null && NcConfig.NcVendor != null) TXTType.Text = NcConfig.NcVendor; @@ -39,10 +54,32 @@ namespace Step.UI MessageServices.Current.Subscribe(SHOW_MSG_UI, (a, b) => { Invoke((MethodInvoker)delegate () { Focus(); MessageBox.Show(a.ToString()); }); - }); - } + }); - private static ServerControlWindow ctrlwindow = null; + } + + + private void ServerControlWindow_FormClosing(object sender, FormClosingEventArgs e) + { + if (!_closing) + { + e.Cancel = true; + this.Opacity = 0; + Hide(); + } + } + + + private void ServerControlWindow_Load(object sender, EventArgs e) + { + if (ServerStartupConfig.AutoOpenCmsClient) + { + BeginInvoke(new MethodInvoker(delegate + { + Hide(); + })); + } + } public static void Start() { // Open WinForm @@ -73,15 +110,6 @@ namespace Step.UI private bool _closing = false; - // Avoid closing the window - protected override void OnClosing(CancelEventArgs e) - { - if (!_closing) - { - e.Cancel = true; - Hide(); - } - } private void OpenUiButton_Click(object sender, EventArgs e) { @@ -96,10 +124,15 @@ namespace Step.UI } private void NotifyIcon_Click(object sender, EventArgs e) - { - this.Show(); - this.TopMost = true; - this.TopMost = false; + { + if((e as MouseEventArgs).Button == MouseButtons.Left) + { + Show(); + this.Opacity = 1; + this.WindowState = FormWindowState.Normal; + this.TopMost = true; + this.TopMost = false; + } } private void StopServerItem_Click(object sender, EventArgs e) @@ -198,19 +231,34 @@ namespace Step.UI }); } - if (ncStatus) + if (ncStatus) + { + NcHandler nc = new NcHandler(); + DTONcGenericDataModel model; + nc.Connect(); + nc.GetNcGenericData(out model); if (!IsDisposed) Invoke((MethodInvoker)delegate () { StepNotifyIcon.Icon = Properties.Resources.CMS_Icon; - }); + TXTMachId.Text = model.CmsMachineIdNumber; + CHNcConnected.Checked = true; + PswForm.setMatricola(model.CmsMachineIdNumber); + passwordToolStripMenuItem.Enabled = true; + }); + } + else + { + if (!IsDisposed) + Invoke((MethodInvoker)delegate () + { + StepNotifyIcon.Icon = Properties.Resources.CMS_Disconnected; + TXTMachId.Text = "---"; + CHNcConnected.Checked = false; + passwordToolStripMenuItem.Enabled = false; + }); + } - //Other type - if (!IsDisposed) - Invoke((MethodInvoker)delegate () - { - CHNcConnected.Checked = ncStatus; - }); }), // Threads status handler MessageServices.Current.Subscribe(SEND_THREADS_STATUS, (a, b) => @@ -229,7 +277,7 @@ namespace Step.UI LISTThreadStatus.Items.Clear(); //Add all items foreach (KeyValuePair Thr in Threads) - LISTThreadStatus.Items.Add(new ListViewItem(new string[] { Thr.Key, Thr.Value })); + LISTThreadStatus.Items.Add(new ListViewItem(new String[]{Thr.Key,Thr.Value })); //End the update LISTThreadStatus.EndUpdate(); isUpdatingThreads = false; @@ -245,6 +293,32 @@ namespace Step.UI if (p.Length > 0) return true; return false; - } + } + + private void adminMachineToolStripMenuItem_Click(object sender, EventArgs e) + { + } + + private void passwordToolStripMenuItem_Click(object sender, EventArgs e) + { + DialogResult dr = PswForm.ShowDialog(); + if (dr == DialogResult.OK) + { + resetSpindleHoursToolStripMenuItem.Visible = true; + goBackToStandardModeToolStripMenuItem.Visible = true; + toolStripSeparator.Visible = true; + passwordToolStripMenuItem.Enabled = false; + MessageBox.Show("Machine Unlocked for administrator use", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information); + } + } + + private void goBackToStandardModeToolStripMenuItem_Click(object sender, EventArgs e) + { + resetSpindleHoursToolStripMenuItem.Visible = false; + goBackToStandardModeToolStripMenuItem.Visible = false; + toolStripSeparator.Visible = false; + passwordToolStripMenuItem.Enabled = true; + MessageBox.Show("Machine Locked for standard use", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information); + } } } \ No newline at end of file diff --git a/Step.UI/Step.UI.csproj b/Step.UI/Step.UI.csproj index 3be98fb7..46d4ba8c 100644 --- a/Step.UI/Step.UI.csproj +++ b/Step.UI/Step.UI.csproj @@ -34,15 +34,7 @@ Resources\CMS_Icon.ico - - ..\packages\MetroModernUI.1.4.0.0\lib\net\MetroFramework.dll - - - ..\packages\MetroModernUI.1.4.0.0\lib\net\MetroFramework.Design.dll - - - ..\packages\MetroModernUI.1.4.0.0\lib\net\MetroFramework.Fonts.dll - + @@ -63,6 +55,12 @@ + + Form + + + PasswordForm.cs + True True @@ -87,6 +85,9 @@ + + PasswordForm.cs + ResXFileCodeGenerator Resources.Designer.cs @@ -107,6 +108,10 @@ {631375DD-06D3-49BB-8130-D9DDB34C429D} Step.Model + + {b2366b08-96bd-4f6b-b748-b45089b87a14} + Step.NC + {cbeb631b-abfa-4042-9779-c0060b0dfefe} Step.Utils diff --git a/Step.UI/Views/OpeningLayer.Designer.cs b/Step.UI/Views/OpeningLayer.Designer.cs index 48655ead..02edc0b3 100644 --- a/Step.UI/Views/OpeningLayer.Designer.cs +++ b/Step.UI/Views/OpeningLayer.Designer.cs @@ -28,18 +28,6 @@ /// private void InitializeComponent() { - this.metroProgressSpinner = new MetroFramework.Controls.MetroProgressSpinner(); - this.statusLabel = new MetroFramework.Controls.MetroLabel(); - this.SuspendLayout(); - // - // metroProgressSpinner - // - this.metroProgressSpinner.Location = new System.Drawing.Point(120, 224); - this.metroProgressSpinner.Maximum = 100; - this.metroProgressSpinner.Name = "metroProgressSpinner"; - this.metroProgressSpinner.Size = new System.Drawing.Size(110, 110); - this.metroProgressSpinner.TabIndex = 0; - this.metroProgressSpinner.UseSelectable = true; // // statusLabel // @@ -57,7 +45,6 @@ this.AutoSize = true; this.BackColor = System.Drawing.Color.Black; this.Controls.Add(this.statusLabel); - this.Controls.Add(this.metroProgressSpinner); this.Name = "OpeningLayer"; this.Size = new System.Drawing.Size(350, 565); this.Load += new System.EventHandler(this.OpeningLayer_Load); @@ -68,7 +55,6 @@ #endregion - private MetroFramework.Controls.MetroProgressSpinner metroProgressSpinner; - private MetroFramework.Controls.MetroLabel statusLabel; + private System.Windows.Forms.Label statusLabel; } } diff --git a/Step.UI/Views/OpeningLayer.cs b/Step.UI/Views/OpeningLayer.cs index e854901e..25b6d333 100644 --- a/Step.UI/Views/OpeningLayer.cs +++ b/Step.UI/Views/OpeningLayer.cs @@ -18,7 +18,7 @@ namespace Step.UI.Views { for (int i = 0; i <= 100; i++) { - metroProgressSpinner.Value = i; + //metroProgressSpinner.Value = i; if (i == 100) i = 0; diff --git a/Step.Utils/CandiesController.cs b/Step.Utils/CandiesController.cs new file mode 100644 index 00000000..8f04f20d --- /dev/null +++ b/Step.Utils/CandiesController.cs @@ -0,0 +1,218 @@ +using Microsoft.Win32; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Step.Utils +{ + public static class CandiesController + { + + private const String BASE36 = "4K6IJZL1M27PQRSNOVWXTU80FGH39ABCDEY5"; + private const String BASE10 = "0431786295"; + private const String KEY_NAME = "HKEY_LOCAL_MACHINE\\SOFTWARE\\CMS\\ACTIVE"; + private const String KEY_VALUE_NAME = "cil"; + private const int BASE_TIME = 730119; // 1/1/2000 + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + #region PUBLIC_METHODS + + // Decodifica password esportando i dati. Ereditata da CMS-Control + public static bool PasswordDecode(String Password, out int Matricola, out int Command, out long Parameter) + { + String szVal; + int nChk = 0; + + Matricola = 0; + Command = 0; + Parameter = 0; + + try + { + szVal = AlgoritmoService_Back(Password).ToString(); + + for (int i = 0; i <= szVal.Length - 1 - 1; i++) + { + nChk += (int)char.GetNumericValue(szVal[i]); + } + + //inserita password con checksum errato + if (szVal.Last() != nChk.ToString().Last()) + return false; + + Matricola = Int16.Parse(szVal.Substring(1, 5)); + Command = Int16.Parse(szVal.Substring(0, 1)); + Parameter = long.Parse(szVal.Substring(6, szVal.Length - 6 - 1)); + } + catch (Exception e) + { + return false; + } + return true; + } + + + // Lettura della licenza da registro. Ereditata da CMS-Control + public static bool getPCLincense(out int Matricola, out long Parameter) + { + string szLicReg_X = String.Empty; + int nLicReg_X = 0; + Matricola = 0; + Parameter = 0; + + //Leggo nel Registro + Licenza_Registry_RW(false, ref szLicReg_X); + + nLicReg_X = Int32.Parse(szLicReg_X); + return getDataFromLincense(nLicReg_X, out Matricola, out Parameter); + + } + + + + // Scrittura della licenza nel registro. Ereditata da CMS-Control + public static void setPCLincense(int Matricola, long Parameter) + { + int nLic; + int days; + + if (Parameter > BASE_TIME) + days = (int) (Parameter - BASE_TIME); + else if (Parameter > Int32.MaxValue) + days = Int32.MaxValue; + else + days = 0; + + nLic = (Matricola << 16) + days; + string Licenza = AlgoritmoLicence(nLic); + Licenza_Registry_RW(true, ref Licenza); + } + + public static bool getDataFromLincense(int Lincence, out int Matricola,out long Parameter) + { + Matricola = 0; + Parameter = 0; + + if (Lincence == 0) + return false; + + long szLic = AlgoritmoLicence_Back(Lincence.ToString()); + Parameter = szLic & 0xFFFF; + Matricola = (int) ((szLic >> 16) & 0xFFFF); + + if (Matricola > 0) + return true; + else + return false; + } + + #endregion + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + #region PRIVATE_METHODS + + private static long AlgoritmoService_Back(String val) + { + //Base36ToDec + long lVal = 0; + int ChrPos; + const int BASE = 36; + + val = val.ToUpper(); + while (val.Length > 0) + { + lVal = lVal * BASE; + ChrPos = BASE36.IndexOf(Left(val, 1)); + if (ChrPos >= 0) + lVal = lVal + ChrPos; + val = Mid(val, 2); + } + return lVal; + } + + + private static long AlgoritmoLicence_Back(String val) + { + long lVal = 0; + int ChrPos; + const int BASE = 10; + + val = val.ToUpper(); + while (val.Length > 0) + { + lVal = lVal * BASE; + ChrPos = BASE10.IndexOf(Left(val, 1)); + if (ChrPos >= 0) + lVal = lVal + ChrPos; + val = Mid(val, 2); + } + return lVal; + } + + + private static string AlgoritmoLicence(int lVal) + { + String sVal = ""; + while(lVal >= 10) + { + sVal = sVal + AlgoritmoLicence(lVal/10); + lVal = lVal - 10 * (lVal/10); + } + sVal = sVal + Mid(BASE10, lVal + 1, 1); + return sVal; + } + + + private static string Left(string value, int size) + { + if (string.IsNullOrEmpty(value)) + return value; + + size = (size >= value.Length ? value.Length : size); + string newValue = value.Substring(0, size); + return newValue; + } + + + private static string Mid(string value, int index) + { + if (string.IsNullOrEmpty(value)) + return value; + + index = index - 1; + if (index >= value.Length) + return ""; + + string newValue = value.Substring(index); + return newValue; + } + + + private static string Mid(string value, int index,int lenght) + { + value = Mid(value, index); + if (lenght <= value.Length) + value = value.Substring(0, lenght); + return value; + } + + private static void Licenza_Registry_RW(bool bWrite, ref string Licenza) + { + Object objLicence; + + //KEY_NAME + if (bWrite) + Registry.SetValue(KEY_NAME, KEY_VALUE_NAME, Licenza, RegistryValueKind.String); + + objLicence = Registry.GetValue(KEY_NAME, KEY_VALUE_NAME,0); + if (objLicence == null) objLicence = 0; + Licenza = objLicence.ToString(); + } + + + #endregion + } +} diff --git a/Step.Utils/Step.Utils.csproj b/Step.Utils/Step.Utils.csproj index 1463258c..4043d5bf 100644 --- a/Step.Utils/Step.Utils.csproj +++ b/Step.Utils/Step.Utils.csproj @@ -68,6 +68,7 @@ +