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()); } } }
public ActionResult EditStatusRegisterBit(StatusRegisterBit bitToEdit) { if (ModelState.IsValid) { db.Entry(bitToEdit).State = EntityState.Modified; db.SaveChanges(); } return RedirectToAction("EditRegister", new { id = bitToEdit.RegisterId }); }
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 StatusRegisterFeedbackBitValue(RegisterFeedback feedback, StatusRegisterBit bit, StatusRegister reg) { this.Reg = reg; this.Feedback = feedback; this.Bit = bit; this.Value = this.Bit.IsBitSet(reg, feedback); }