Exemplo n.º 1
0
 void GetLogIDsFromMain(Query qryHeader, DateTime from, DateTime to, IList<LogQueryResultDetail> results)
 {
     var dateFilter = NumericRangeFilter.NewLongRange(FieldKeys.CreatedDT, 8, DateTime.SpecifyKind(from, DateTimeKind.Utc).Ticks, DateTime.SpecifyKind(to, DateTimeKind.Utc).Ticks, true, true);
     var searcher = new IndexSearcher(directory, true);
     if (searcher.MaxDoc() == 0)
     {
         return;
     }
     var topDocs = searcher.Search(qryHeader, dateFilter, searcher.MaxDoc());
     for (int i = 0; i < topDocs.ScoreDocs.Length; i++)
     {
         //var curDoc = searcher.Doc(topDocs.ScoreDocs[i].doc, new MapFieldSelector(new string[] { FieldKeys.LogName, FieldKeys.LogID }));
         var curDoc = searcher.Doc(topDocs.ScoreDocs[i].doc);
         var curResult = new LogQueryResultDetail()
         {
             Database = curDoc.Get(FieldKeys.LogName),
             ID = Convert.ToInt64(curDoc.Get(FieldKeys.LogID), System.Globalization.CultureInfo.InvariantCulture)
         };
         results.Add(curResult);
     }
 }
Exemplo n.º 2
0
 public IList<LogQueryResultDetail> RetrieveLogByDate(JET_SESID session, DateTime from, DateTime to, bool includeData)
 {
     var ret = new List<LogQueryResultDetail>();
     Api.JetSetCurrentIndex(session, logTable, idxName_Created);
     Api.MakeKey(session, logTable, from.Ticks, MakeKeyGrbit.NewKey);
     if (Api.TrySeek(session, logTable, SeekGrbit.SeekGE))
     {
         Api.MakeKey(session, logTable, to.Ticks, MakeKeyGrbit.NewKey);
         if (Api.TrySetIndexRange(session, logTable, SetIndexRangeGrbit.RangeInclusive | SetIndexRangeGrbit.RangeUpperLimit))
         {
             do
             {
                 var cur = new LogQueryResultDetail();
                 cur.ID = (long)Api.RetrieveColumnAsInt64(session, logTable, colID_ID);
                 cur.CreatedDateTime = new DateTime((long)Api.RetrieveColumnAsInt64(session, logTable, colID_Created), DateTimeKind.Utc);
                 cur.Elapsed = (long)Api.RetrieveColumnAsInt64(session, logTable, colID_Elapsed);
                 cur.IsError = (bool)Api.RetrieveColumnAsBoolean(session, logTable, colID_Exception);
                 if (includeData)
                 {
                     cur.Log = Log.DeserializeLog(Api.RetrieveColumn(session, logTable, colID_Data));
                 }
                 ret.Add(cur);
             }
             while (Api.TryMoveNext(session, logTable));
         }
     }
     return ret;
 }