using SteamWare; using System; using System.Text; using System.Web.UI; using System.Web.UI.WebControls; namespace MP_SITE.WebUserControls { public partial class mod_logAllarmi : baseProdControl { #region Public Methods public override void doUpdate() { if (memLayer.ML.CRI("_logLevel") > 5) { logger.lg.scriviLog("inizio caricamento dati Allarmi", tipoLog.INFO); } grView.PageSize = _numRighe; ods.DataBind(); if (memLayer.ML.CRI("_logLevel") > 5) { logger.lg.scriviLog("fine caricamento dati Allarmi", tipoLog.INFO); } if (!Page.IsPostBack) { fixMacchina(); } } public void reportUpdt(object sender, EventArgs e) { reportUpdate(); } #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 grView.DataBind(); } } } protected void lbtReset_Click(object sender, EventArgs e) { txtSearch.Text = ""; } 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($"{alarmRow.ValDecoded}"); sb.AppendLine(); sb.AppendLine($"Info Area: {alarmRow.MemAddress}.{alarmRow.MemIndex} | Status {alarmRow.StatusVal}"); sb.AppendLine(); string corpo = sb.ToString().Replace($"{Environment.NewLine}", "
"); // FIXME TODO scegliere destinatario bool fatto = DataLayerObj.sendEmail("samuele@steamware.net,giancarlo@teamware.net", oggetto, corpo); if (fatto) { // salvo invio Notifica allarme DataLayerObj.taAlarmLog.setNotify(AlarmId, DateTime.Now); } } // ricarico //doUpdate(); grView.DataBind(); } } } protected void txtSearch_TextChanged(object sender, EventArgs e) { grView.DataBind(); } #endregion Protected Methods #region Private Methods private void fixMacchina() { string IdxMacc = memLayer.ML.StringSessionObj("IdxMacchina"); int idx = 0; if (isMulti(IdxMacc)) { idx = IdxMacc.IndexOf("#", StringComparison.OrdinalIgnoreCase); if (idx > 0) { IdxMacc = IdxMacc.Substring(0, IdxMacc.IndexOf("#", StringComparison.OrdinalIgnoreCase)); } } memLayer.ML.setSessionVal("IdxMacchinaAlarmLog", IdxMacc); } #endregion Private Methods } }