コード例 #1
0
ファイル: Log.cs プロジェクト: guozanhua/phmi
 public override void Delete(LogItem item)
 {
     lock (_timesForDelete)
     {
         _timesForDelete.Add(item.Time);
     }
 }
コード例 #2
0
ファイル: LogPage.xaml.cs プロジェクト: guozanhua/phmi
 private void BSaveClick(object sender, RoutedEventArgs e)
 {
     var item = new LogItem {Text = tbMessage.Text};
     item.SetToBytes(tbMessage2.Text);
     _log.Save(item);
     _logs.Add(item);
 }
コード例 #3
0
ファイル: LogService.cs プロジェクト: guozanhua/phmi
 public void Clean()
 {
     if (_remapList == null)
         return;
     var emptyItems = new LogItem[0];
     foreach (var callback in _remapList.SelectMany(t => t.Item2))
     {
         callback(emptyItems);
     }
 }
コード例 #4
0
ファイル: LogMaintainer.cs プロジェクト: phmi/phmi
 public DateTime Save(LogItem item)
 {
     using (var connection = _connectionFactory.Create())
     {
         DeleteOld(connection);
         if (item.Time == _defaultTime)
         {
             item.Time = _timeService.UtcTime;
             _repository.Insert(connection, item);
         }
         else if (!_repository.Update(connection, item))
         {
             _repository.Insert(connection, item);
         }
         return item.Time;
     }
 }
コード例 #5
0
ファイル: LogRepository.cs プロジェクト: guozanhua/phmi
 public LogItem[] GetItems(
     NpgsqlConnection connection, CriteriaType criteriaType, DateTime criteria, int maxCount, bool includeBytes)
 {
     IWhereOp whereOp;
     bool asc;
     switch (criteriaType)
     {
         case CriteriaType.DownFromInfinity:
             whereOp = null;
             asc = false;
             break;
         case CriteriaType.DownFrom:
             whereOp = new Lt(DbStr.Time, criteria.Ticks);
             asc = false;
             break;
         case CriteriaType.DownFromOrEqual:
             whereOp = new Le(DbStr.Time, criteria.Ticks);
             asc = false;
             break;
         case CriteriaType.UpFromInfinity:
             whereOp = null;
             asc = true;
             break;
         case CriteriaType.UpFrom:
             whereOp = new Gt(DbStr.Time, criteria.Ticks);
             asc = true;
             break;
         case CriteriaType.UpFromOrEqual:
             whereOp = new Ge(DbStr.Time, criteria.Ticks);
             asc = true;
             break;
         default:
             throw new NotSupportedException("CriteriaType " + criteriaType);
     }
     var columns = includeBytes ? _columns : _columnsWithoutBytes;
     var query = _npgQueryHelper.Select(
         _tableName, columns, whereOp, new[] { DbStr.Time }, asc, Math.Min(maxCount, MaxItemsToRetrieve));
     var alarms = _npgHelper.ExecuteReader(connection, query, reader =>
         {
             var i = new LogItem
                 {
                     Time = reader.GetDateTimeFormTicks(0),
                     Text = reader.GetNullableString(1)
                 };
             if (includeBytes)
             {
                 i.Bytes = reader.GetByteArray(2);
             }
             return i;
         });
     return asc ? alarms.Reverse().ToArray() : alarms;
 }
コード例 #6
0
ファイル: LogRepository.cs プロジェクト: guozanhua/phmi
 public bool Update(NpgsqlConnection connection, LogItem item)
 {
     var query = _npgQueryHelper.UpdateWhere(
         _tableName,
         new Eq(DbStr.Time, item.Time.Ticks),
         new[] { DbStr.Text, DbStr.Bytes },
         new object[] { item.Text, item.Bytes });
     return _npgHelper.ExecuteNonQuery(connection, query) == 1;
 }
コード例 #7
0
ファイル: LogRepository.cs プロジェクト: guozanhua/phmi
 public void Insert(NpgsqlConnection connection, LogItem item)
 {
     var values = new object[]
         {
             item.Time.Ticks,
             item.Text,
             item.Bytes
         };
     var query = _npgQueryHelper.Insert(
         _tableName,
         _columns,
         new[] {values});
     _npgHelper.ExecuteNonQuery(connection, query);
 }
コード例 #8
0
 public override void Delete(LogItem item)
 {
     lock (_timesForDelete) {
         _timesForDelete.Add(item.Time);
     }
 }
コード例 #9
0
 public override void Save(LogItem item)
 {
     _itemsToSave.Enqueue(item);
 }
コード例 #10
0
 public abstract void Delete(LogItem item);
コード例 #11
0
 public abstract void Save(LogItem item);
コード例 #12
0
ファイル: LogAbstract.cs プロジェクト: guozanhua/phmi
 public abstract void Save(LogItem item);
コード例 #13
0
ファイル: LogAbstract.cs プロジェクト: guozanhua/phmi
 public abstract void Delete(LogItem item);
コード例 #14
0
ファイル: Log.cs プロジェクト: guozanhua/phmi
 public override void Save(LogItem item)
 {
     _itemsToSave.Enqueue(item);
 }