public void Validate(AlarmLog obj) { if (!obj.Title.IsValidLength(1, 200)) throw new Exception(Resources.Error_AlarmLogTitleInvalid); if (!obj.Note.IsValidLength(-1, 500)) throw new Exception(Resources.Error_AlarmLogNoteInvalid); }
/// <summary> /// Check sensor value and auto add alarm log if it is out of range. /// Non auto save changed to database, you must call entityConntext.SaveChanges() to save changed. /// </summary> /// <param name="sensorValue"></param> /// <returns></returns> public bool CheckAlarm(SensorValue sensorValue) { var sensor = sensorValue.Sensor; if (sensor.AlarmEnabled) { if ((sensor.MinValue != null && sensor.MinValue > sensorValue.CalcValue) || (sensor.MaxValue != null && sensor.MaxValue < sensorValue.CalcValue)) { if (sensor.AlarmFlag) { var lastAlarm = sensor.AlarmLogs.LastOrDefault( ent => !ent.IsEnded && ent.StartAlarmDatetime <= sensorValue.MeaTime); if (lastAlarm == null || lastAlarm.CalcValue == sensorValue.CalcValue) { return false; } } // Add Alarm var alarm = new AlarmLog(); alarm.SensorID = sensor.SensorID; // Set project ID alarm.ProjectID = sensor.ProjectID; alarm.CalcValue = sensorValue.CalcValue; alarm.IsEnded = false; alarm.StartAlarmDatetime = sensorValue.MeaTime; alarm.Title = sensor.Logger.Name + " - " + sensor.Name; // Edited by binhpro 23/11/2012 decimal range = sensor.MaxValue.Value - sensor.MinValue.Value; if (range == 0) range = sensor.MaxValue.Value; if (alarm.CalcValue < sensor.MinValue && range != 0) { alarm.Title += " - dưới ngưỡng " + Math.Round(Math.Abs((decimal)((sensor.MinValue - alarm.CalcValue) / range * 100)), 0) + " %"; } else if (alarm.CalcValue > sensor.MaxValue && range != 0) { alarm.Title += " - vượt ngưỡng " + Math.Round(Math.Abs((decimal)((alarm.CalcValue - sensor.MaxValue) / range * 100)), 0) + " %"; } alarm.Title += " - " + alarm.StartAlarmDatetime; // Set Alarm Flag Of Sensor TRUE sensor.AlarmFlag = true; sensor.AlarmLogs.Add(alarm); return true; } if (sensor.AlarmFlag) { // Set Alarm Flag Of Sensor FALSE sensor.AlarmFlag = false; // Close All Alarm Log Before var logs = sensor.AlarmLogs.Where(ent => !ent.IsEnded && ent.StartAlarmDatetime <= sensorValue.MeaTime); foreach (var alarmLog in logs) { alarmLog.IsEnded = true; alarmLog.EndAlarmDatetime = sensorValue.MeaTime; } // entityConntext.SaveChanges(); } return false; } return false; }
public bool Update(AlarmLog obj) { using (var entityConntext = new GeoViewerEntities()) { SecurityBLL.Current.CheckPermissionThrowException(new string[] { SecurityBLL.ROLE_ALARM_EDIT, SecurityBLL.ROLE_ALARM_MANAGE }); Validate(obj); obj.LastEditedDate = DateTime.Now; obj.LastEditedUser = AppContext.Current.LogedInUser.Username; entityConntext.AttachUpdatedObject(obj); return entityConntext.SaveChanges() > 0; } }
public bool Insert(AlarmLog obj) { using (var entityConntext = new GeoViewerEntities()) { Validate(obj); if (AppContext.Current.OpenProject != null) obj.ProjectID = AppContext.Current.OpenProject.ProjectID; obj.IsEnded = false; entityConntext.AlarmLogs.AddObject(obj); return entityConntext.SaveChanges() > 0; } }
/// <summary> /// Create a new AlarmLog object. /// </summary> /// <param name="alarmLogID">Initial value of the AlarmLogID property.</param> /// <param name="sensorID">Initial value of the SensorID property.</param> /// <param name="calcValue">Initial value of the CalcValue property.</param> /// <param name="isEnded">Initial value of the IsEnded property.</param> /// <param name="startAlarmDatetime">Initial value of the StartAlarmDatetime property.</param> public static AlarmLog CreateAlarmLog(global::System.Int64 alarmLogID, global::System.Int32 sensorID, global::System.Decimal calcValue, global::System.Boolean isEnded, global::System.DateTime startAlarmDatetime) { AlarmLog alarmLog = new AlarmLog(); alarmLog.AlarmLogID = alarmLogID; alarmLog.SensorID = sensorID; alarmLog.CalcValue = calcValue; alarmLog.IsEnded = isEnded; alarmLog.StartAlarmDatetime = startAlarmDatetime; return alarmLog; }
/// <summary> /// Deprecated Method for adding a new object to the AlarmLogs EntitySet. Consider using the .Add method of the associated ObjectSet<T> property instead. /// </summary> public void AddToAlarmLogs(AlarmLog alarmLog) { base.AddObject("AlarmLogs", alarmLog); }
private void logGridView_CellDoubleClick(object sender, DataGridViewCellEventArgs e) { if (logGridView.SelectedRows.Count == 0) { MessageBox.Show(Resources.Warning_NoRecordSelected); return; } _editingLog = AlarmBLL.Current.GetByID(logGridView.SelectedRows[0].Cells["AlarmLogID"].Value.ToInt32TryParse()); if (_editingLog != null) { noteTextBox.Text = _editingLog.Note; saveButton.Enabled = true; } }