107 lines
3.6 KiB
C#
107 lines
3.6 KiB
C#
using SteamWare;
|
|
using System;
|
|
using System.Text;
|
|
using System.Web.UI;
|
|
using System.Web.UI.WebControls;
|
|
|
|
namespace MoonProTablet.WebUserControls
|
|
{
|
|
public partial class mod_elencoAllarmi : BaseUserControl
|
|
{
|
|
#region Public Methods
|
|
|
|
public void doUpdate()
|
|
{
|
|
grView.DataBind();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Indica se ci sia registrato ACK utente
|
|
/// </summary>
|
|
/// <param name="rawUser"></param>
|
|
/// <returns></returns>
|
|
public bool hasAck(object rawUser)
|
|
{
|
|
return !string.IsNullOrEmpty($"{rawUser}");
|
|
}
|
|
|
|
#endregion Public Methods
|
|
|
|
#region Protected Methods
|
|
|
|
protected void lbkDoAck_Click(object sender, EventArgs e)
|
|
{
|
|
// recupero button
|
|
LinkButton lbtn = (LinkButton)sender;
|
|
if (lbtn != null)
|
|
{
|
|
var rawAlarmId = lbtn.CommandArgument;
|
|
int AlarmId = 0;
|
|
int.TryParse(rawAlarmId, out AlarmId);
|
|
if (AlarmId > 0)
|
|
{
|
|
// salvo ACK allarme
|
|
DataLayerObj.taAlarmLog.setAck(AlarmId, DateTime.Now, $"{DataLayerObj.MatrOpr} - {DataLayerObj.CognomeNomeOpr}");
|
|
// ricarico
|
|
doUpdate();
|
|
}
|
|
}
|
|
}
|
|
|
|
protected void lbtSendNotify_Click(object sender, EventArgs e)
|
|
{
|
|
// recupero button
|
|
LinkButton lbtn = (LinkButton)sender;
|
|
if (lbtn != null)
|
|
{
|
|
var rawAlarmId = lbtn.CommandArgument;
|
|
int AlarmId = 0;
|
|
int.TryParse(rawAlarmId, out AlarmId);
|
|
if (AlarmId > 0)
|
|
{
|
|
var alarmTab = DataLayerObj.taAlarmLog.getByKey(AlarmId);
|
|
if (alarmTab != null && alarmTab.Count > 0)
|
|
{
|
|
var alarmRow = alarmTab[0];
|
|
// invio email...
|
|
string oggetto = $"Notifica allarme impianto {alarmRow.MachineId}";
|
|
StringBuilder sb = new StringBuilder();
|
|
sb.AppendLine("Attenzione: allarme presente per un periodo superiore alla soglia di controllo.");
|
|
sb.AppendLine();
|
|
sb.AppendLine($"<b>{alarmRow.ValDecoded}</b>");
|
|
sb.AppendLine();
|
|
sb.AppendLine($"Info Area: {alarmRow.MemAddress}.{alarmRow.MemIndex} | Status {alarmRow.StatusVal}");
|
|
sb.AppendLine();
|
|
string corpo = sb.ToString().Replace($"{Environment.NewLine}", "<br/>");
|
|
|
|
// FIXME TODO scegliere destinatario
|
|
bool fatto = DataLayerObj.sendEmail("samuele@steamware.net", oggetto, corpo);
|
|
if (fatto)
|
|
{
|
|
// salvo invio Notifica allarme
|
|
DataLayerObj.taAlarmLog.setNotify(AlarmId, DateTime.Now);
|
|
}
|
|
}
|
|
// ricarico
|
|
doUpdate();
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
{
|
|
if (!Page.IsPostBack)
|
|
{
|
|
intervalloDate newIntervallo = new intervalloDate()
|
|
{
|
|
fine = DateTime.Today.AddDays(1),
|
|
inizio = DateTime.Today.AddDays(-7)
|
|
};
|
|
mod_selPeriodo.intervalloAnalisi = newIntervallo;
|
|
}
|
|
}
|
|
|
|
#endregion Protected Methods
|
|
}
|
|
} |