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); } }
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; }