Files
MoonPro.net/MP-TAB/WebUserControls/mod_elencoAllarmi.ascx.cs

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
}
}