private void WriteSource(AuditSourceRecord record, StringBuilder sb) { if (record.Entry == null) { return; } sb.Append("<|||>" + _jsonSerializationService.SerializeObject(record) + "<|||>"); }
public void Rebuild() { if (Rebuilding) { return; } Rebuilt = 0; Task.Run(() => { try { Rebuilding = true; lock (_locker) { _dir.ClearLock("rebuilding"); using (var writer = new IndexWriter(_dir, Analyzer, IndexWriter.MaxFieldLength.UNLIMITED)) { writer.DeleteAll(); } } DateTime start = DateTime.Now.Subtract(TimeSpan.FromDays(_recordDays)); while (start < DateTime.Now.AddDays(1)) { string file = _dataDirectory + "/source/" + start.ToString("yyyy-MMM-dd") + "/source.src"; if (File.Exists(file)) { byte[] txt = File.ReadAllBytes(file); foreach (string entry in StringZipper.Unzip(txt).Split(new[] { "<|||>" }, StringSplitOptions.RemoveEmptyEntries)) { AuditSourceRecord record = _jsonSerializationService.DeserializeObject <AuditSourceRecord>(entry); Log(record.Entry, record.Content, false); Rebuilt++; } } start = start.AddDays(1); } } catch (Exception e) { Sitecore.Diagnostics.Log.Error(e.ToString(), this); } finally { Rebuilt = -1; Rebuilding = false; } }); }