Files
cms_thermo_active/Thermo.Active.UI/Dialogs/PasswordForm.cs
T
2020-04-09 14:37:07 +02:00

125 lines
3.7 KiB
C#

using Thermo.Active.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 Thermo.Active.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();
}
}
}
}