// Creates an alarm using data defined in the database. private Alarm CreateAlarm(DataRow row) { object associatedMeasurementId = row.Field<object>("AssociatedMeasurementID"); return new Alarm((AlarmOperation)row.ConvertField<int>("Operation")) { ID = row.ConvertField<int>("ID"), TagName = row.Field<object>("TagName").ToString(), SignalID = Guid.Parse(row.Field<object>("SignalID").ToString()), AssociatedMeasurementID = ((object)associatedMeasurementId != null) ? Guid.Parse(associatedMeasurementId.ToString()) : (Guid?)null, Description = row.Field<object>("Description").ToNonNullString(), Severity = row.ConvertField<int>("Severity").GetEnumValueOrDefault<AlarmSeverity>(AlarmSeverity.None), SetPoint = row.ConvertNullableField<double>("SetPoint"), Tolerance = row.ConvertNullableField<double>("Tolerance"), Delay = row.ConvertNullableField<double>("Delay"), Hysteresis = row.ConvertNullableField<double>("Hysteresis") }; }