using Step.NC; 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 { private NcAdapter Nc; private String Matricola; private DateTime Licenza; const long BASETIME = 730119; // 1/1/2000 public PasswordForm() { InitializeComponent(); } public void setNcData(String matr, NcAdapter Nch) { this.Matricola = matr; this.Text = "Password - " + this.Matricola; this.Nc = Nch; } 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 = ""; ErrorProvider1.Clear(); 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; //Password storica. Serve per abilitare funzionalità particolari if (psw == "cmsserviceonly") bValid = true; else if (Utils.CandiesController.LincensePasswordDecode(psw, out string MatricolaString, out int MatricolaNumerica, out int Command, out long Parameter)) //Controllo la matricola if (this.Matricola != MatricolaString) bValid = false; else { switch (Command) { //password del service case 1: bValid = true;break; //SET Licenza Temporanea case 2: if(Nc != null) { Licenza = new DateTime(Parameter * TimeSpan.TicksPerDay); Nc.WriteCandy(Licenza, MatricolaNumerica); bValid = false; } break; //SET Licenza Illimitata case 3: if (Nc != null) { Licenza = new DateTime(0); Nc.WriteCandy(Licenza, MatricolaNumerica); 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(); } } } }