using System;
using System.Threading;
using System.Web.UI;
namespace NKC_WF.WebUserControls
{
public partial class cmp_barcode : BaseUserControl
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
resetInput();
resetMessage();
}
else if (string.IsNullOrEmpty(inputAcquired))
{
checkRaiseEv();
}
}
///
/// evento modifica testo
///
///
///
protected void txtBarcode_TextChanged(object sender, EventArgs e)
{
checkRaiseEv();
}
///
/// Verifica se inviare evento
///
private void checkRaiseEv()
{
if (valueRead != inputAcquired)
{
// registro NUOVO cmd
inputAcquired = valueRead;
// alzo evento SOLO SE il nuovo valore è diverso da null...
if (!string.IsNullOrEmpty(inputAcquired))
{
raiseEvent();
}
}
else
{
if (string.IsNullOrEmpty(inputAcquired))
{
resetInput();
}
}
resetInput();
}
///
/// Comando acquisito da Barcode
///
public string inputAcquired
{
get
{
return hfLastCmd.Value;
}
set
{
hfLastCmd.Value = value;
}
}
///
/// Valore acquisito in lettura barcode
///
protected string valueRead
{
get
{
return txtBarcode.Text.Trim();
}
set
{
txtBarcode.Text = value;
}
}
///
/// Reset input del barcode SENZA generare evento...
///
///
public void resetInput()
{
valueRead = "";
txtBarcode.Focus();
}
///
/// reset messaggio
///
public void resetMessage()
{
lbtReset.Visible = false;
lblOutput.Text = "";
}
///
/// Gestione output da mostrare (opzionale
///
/// Enum delle classi permesse
///
public void showOutput(AppData.cssClass cssClass, string messaggio)
{
// In primis: mostro qualcosa SOLO SE ho del testo
lbtReset.Visible = !string.IsNullOrEmpty(messaggio);
lblOutput.Text = messaggio;
//lbtReset.Attributes.Remove("class");
//lbtReset.Attributes.Add("class", $"btn btn-block {cssClass}");
lbtReset.CssClass = $"btn btn-sm btn-block py-0 btn-{cssClass}";
}
///
/// reset lettura
///
///
///
protected void lbtReset_Click(object sender, EventArgs e)
{
Response.Redirect(Request.RawUrl);
}
}
}