Esempio n. 1
0
 public override void GetCurrent(CriteriaType criteriaType, AlarmSampleId criteria, int maxCount,
                                 Action <Alarm[]> callback)
 {
     lock (_currentQueries) {
         _currentQueries.Add(new Tuple <CriteriaType, AlarmSampleId, int, Action <Alarm[]> >(
                                 criteriaType, criteria, maxCount, callback));
     }
 }
Esempio n. 2
0
 public abstract void GetHistory(CriteriaType criteriaType, AlarmSampleId criteria, int maxCount,
                                 Action <Alarm[]> callback);
Esempio n. 3
0
 protected override void EstablishContext()
 {
     base.EstablishContext();
     StrangeAlarm = new AlarmSampleId(TimeService.Object.UtcTime - TimeSpan.FromDays(1), RandomGenerator.GetRandomInt32());
     Repository.Setup(r => r.GetActiveIds(Connection)).Returns(new[] {StrangeAlarm});
 }
Esempio n. 4
0
 protected override void EstablishContext()
 {
     base.EstablishContext();
     ActiveId = new AlarmSampleId(TimeService.Object.UtcTime - TimeSpan.FromDays(1.111), AlarmTag.Id);
     Repository.Setup(r => r.GetActiveIds(Connection))
         .Returns(new[]
             {
                 ActiveId
             });
 }
Esempio n. 5
0
 protected override void EstablishContext()
 {
     base.EstablishContext();
     CriteriaType = CriteriaType.DownFromInfinity;
     Criteria = new AlarmSampleId(DateTime.UtcNow, RandomGenerator.GetRandomInt32());
     MaxCount = RandomGenerator.GetRandomInt32();
     AlarmsRunTarget.GetHistoryAlarms(CriteriaType, Criteria, MaxCount);
 }
Esempio n. 6
0
 public Alarm[] GetHistoryAlarms(NpgsqlConnection connection, CriteriaType criteriaType, AlarmSampleId criteria, int maxCount)
 {
     return GetAlarms(connection, null, criteriaType, criteria, maxCount);
 }
Esempio n. 7
0
 public Alarm[] GetCurrentAlarms(NpgsqlConnection connection, CriteriaType criteriaType, AlarmSampleId criteria, int maxCount)
 {
     var whereOp = new Or(new IsNull(DbStr.EndTime), new IsNull(DbStr.AcknowledgeTime));
     return GetAlarms(connection, whereOp, criteriaType, criteria, maxCount);
 }
Esempio n. 8
0
 private Alarm[] GetAlarms(
     NpgsqlConnection connection, IWhereOp alarmsWhereOp, CriteriaType criteriaType, AlarmSampleId criteria, int maxCount)
 {
     IWhereOp whereOp;
     bool asc;
     switch (criteriaType)
     {
         case CriteriaType.DownFromInfinity:
             whereOp = null;
             asc = false;
             break;
         case CriteriaType.DownFrom:
             whereOp = new Or(
                 new And(new Eq(DbStr.StartTime, criteria.StartTime.Ticks), new Lt(DbStr.AlarmId, criteria.AlarmId)),
                 new Lt(DbStr.StartTime, criteria.StartTime.Ticks));
             asc = false;
             break;
         case CriteriaType.DownFromOrEqual:
             whereOp = new Or(
                 new And(new Eq(DbStr.StartTime, criteria.StartTime.Ticks), new Le(DbStr.AlarmId, criteria.AlarmId)),
                 new Lt(DbStr.StartTime, criteria.StartTime.Ticks));
             asc = false;
             break;
         case CriteriaType.UpFromInfinity:
             whereOp = null;
             asc = true;
             break;
         case CriteriaType.UpFrom:
             whereOp = new Or(
                 new And(new Eq(DbStr.StartTime, criteria.StartTime.Ticks), new Gt(DbStr.AlarmId, criteria.AlarmId)),
                 new Gt(DbStr.StartTime, criteria.StartTime.Ticks));
             asc = true;
             break;
         case CriteriaType.UpFromOrEqual:
             whereOp = new Or(
                 new And(new Eq(DbStr.StartTime, criteria.StartTime.Ticks), new Ge(DbStr.AlarmId, criteria.AlarmId)),
                 new Gt(DbStr.StartTime, criteria.StartTime.Ticks));
             asc = true;
             break;
         default:
             throw new NotSupportedException("CriteriaType " + criteriaType);
     }
     if (alarmsWhereOp != null)
     {
         whereOp = whereOp == null ? alarmsWhereOp : new And(whereOp, alarmsWhereOp);
     }
     var query = _npgQueryHelper.Select(
         _tableName, _columns, whereOp, new[] { DbStr.StartTime, DbStr.AlarmId }, asc, Math.Min(maxCount, MaxAlarmsToRetrieve));
     var alarms = _npgHelper.ExecuteReader(connection, query, reader =>
         new Alarm(reader.GetDateTimeFormTicks(0), reader.GetInt32(1))
             {
                 EndTime = reader.GetNullableDateTimeFormTicks(2),
                 AcknowledgeTime = reader.GetNullableDateTimeFormTicks(3),
                 UserId = reader.GetNullableInt64(4)
             });
     return asc ? alarms.Reverse().ToArray() : alarms;
 }
Esempio n. 9
0
 public void Update(NpgsqlConnection connection, AlarmSampleId[] alarms, DateTime acknowledgeTime, long? userId)
 {
     var query = _npgQueryHelper.UpdateWhere(
         _tableName,
         new And(
             new Or(alarms.Select(a => new And(new Eq(DbStr.StartTime, a.StartTime.Ticks), new Eq(DbStr.AlarmId, a.AlarmId))).Cast<IWhereOp>().ToArray()),
             new IsNull(DbStr.AcknowledgeTime)),
         new[] { DbStr.AcknowledgeTime, DbStr.UserId },
         new object[] { acknowledgeTime.Ticks, userId });
     _npgHelper.ExecuteNonQuery(connection, query);
 }
Esempio n. 10
0
 public void Update(NpgsqlConnection connection, AlarmSampleId[] alarms, DateTime endTime)
 {
     var query = _npgQueryHelper.UpdateWhere(
         _tableName,
         new Or(alarms.Select(a =>
             new And(new Eq(DbStr.StartTime, a.StartTime.Ticks), new Eq(DbStr.AlarmId, a.AlarmId)))
             .Cast<IWhereOp>().ToArray()),
         new[] {DbStr.EndTime},
         new object[] {endTime.Ticks});
     _npgHelper.ExecuteNonQuery(connection, query);
 }
Esempio n. 11
0
 public override void GetHistory(CriteriaType criteriaType, AlarmSampleId criteria, int maxCount, Action<Alarm[]> callback)
 {
     lock (_historyQueries)
     {
         _historyQueries.Add(new Tuple<CriteriaType, AlarmSampleId, int, Action<Alarm[]>>(
             criteriaType, criteria, maxCount, callback));
     }
 }
Esempio n. 12
0
 public void Acknowledge(AlarmSampleId[] alarms, Identity identity)
 {
     var privilege = _project.UsersRunner.GetPrivilege(identity);
     var alarmsToAcknowledge = (from a in alarms
                                let p = GetPrivilege(a.AlarmId)
                                where !p.HasValue || (privilege.HasValue && (p.Value & privilege.Value) != 0)
                                select a).ToArray();
     if (!alarmsToAcknowledge.Any())
         return;
     var userId = identity == null ? null : identity.UserId as long?;
     using (var connection = _connectionFactory.Create())
     {
         _repository.Update(connection, alarmsToAcknowledge, _timeService.UtcTime, userId);
     }
 }
Esempio n. 13
0
 public Alarm[] GetHistoryAlarms(CriteriaType criteriaType, AlarmSampleId criteria, int maxCount)
 {
     using (var connection = _connectionFactory.Create())
     {
         return _repository.GetHistoryAlarms(connection, criteriaType, criteria, maxCount);
     }
 }
Esempio n. 14
0
 public abstract void GetHistory(CriteriaType criteriaType, AlarmSampleId criteria, int maxCount, Action<Alarm[]> callback);