private void checkStatusAlert(StatusRegisterBitAlert alert, StatusRegisterBit bit, StatusRegister register, RegisterFeedback feedback) { var isBitSet = bit.IsBitSet(register, feedback); var alarmAlerted = alert.Alerted; if (bit.ActiveType == ActiveType.ActiveHigh) { if (!alarmAlerted && isBitSet) { alert.Alerted = true; m_context.SaveChanges(); sendEmail(alert.EmailSubject, buildStatusBody(alert, bit, register), alert.getEmailsList()); } else if (alarmAlerted && !isBitSet) { alert.Alerted = false; m_context.SaveChanges(); sendEmail(alert.EmailSubject, buildStatusBody(alert, bit, register), alert.getEmailsList()); } } else if (bit.ActiveType == ActiveType.ActiveLow) { if (!alarmAlerted && !isBitSet) { alert.Alerted = true; m_context.SaveChanges(); sendEmail(alert.EmailSubject, buildStatusBody(alert, bit, register), alert.getEmailsList()); } else if (alarmAlerted && isBitSet) { alert.Alerted = false; m_context.SaveChanges(); sendEmail(alert.EmailSubject, buildStatusBody(alert, bit, register), alert.getEmailsList()); } } }
private string buildStatusBody(StatusRegisterBitAlert alert, StatusRegisterBit bit, StatusRegister register) { var builder = new StringBuilder(); if (alert.Alerted) { builder.AppendLine(alert.EmailBody); } else { builder.AppendLine("No longer in an alerted state."); } builder.AppendLine("Device: "); builder.AppendLine(register.Device.SerialNumber); builder.AppendLine("Register: "); builder.AppendLine(register.Alias); builder.AppendLine("Bit: "); builder.AppendLine(bit.Alias); return builder.ToString(); }
public ActionResult CreateStatusRegisterBitAlert(int bitId) { var alert = new StatusRegisterBitAlert(); alert.StatusRegisterBitId = bitId; return View("EditStatusRegisterBitAlert", alert); }
public ActionResult CreateStatusRegisterBitAlert(StatusRegisterBitAlert newAlert) { if (ModelState.IsValid) { var bit = db.StatusRegisterBits.Find(newAlert.StatusRegisterBitId); bit.Alerts.Add(newAlert); db.SaveChanges(); } return RedirectToAction("EditStatusRegisterBit", new { id = newAlert.StatusRegisterBitId }); }
public ActionResult EditStatusRegisterBitAlert(StatusRegisterBitAlert editedAlert) { if (ModelState.IsValid) { db.Entry(editedAlert).State = EntityState.Modified; db.SaveChanges(); } return RedirectToAction("EditStatusRegisterBit", new { id = editedAlert.StatusRegisterBitId }); }