public string Save( TextIndexingRequest request, ExtractionPointDetail text) { var record = new TextDocument(request.RemoteSourceIdentity, request.FriendlyName, request.MimeType, text) { Id = Guid.NewGuid().ToString(), Created = DateTimeOffset.UtcNow }; ActiveSession.Add(record); return(record.Id); }
public string Save(TextIndexingRequest request, ExtractionPointDetail text) { var dropFile = ""; while (string.IsNullOrEmpty(dropFile) || File.Exists(dropFile)) { dropFile = Path.Combine(_dropFolder, DateTime.Now.Ticks + "." + text.Sid + ".idx"); } var idxIdentity = CreateCacheEntry(request.RemoteSourceIdentity, request.FriendlyName, request.MimeType, text.Segment, dropFile); return(idxIdentity); }
public IEnumerable <TextIndexingRequest> GetReadyFiles() { var finalPath = FilePathSanitizer.AssureTrailingPathSlash(_dropFolder); foreach (var file in Directory.EnumerateFiles(finalPath, "*.idx")) { // the index file is marked as indexed by the cache consumer if ((File.GetAttributes(file) & FileAttributes.ReadOnly) != 0) { continue; } var infoFile = GetInfoFileName(file); if (!File.Exists(infoFile)) { continue; } // the info file needs to be marked as readonly to make sure // the index file is ready if ((File.GetAttributes(infoFile) & FileAttributes.ReadOnly) == 0) { continue; } var info = XDocument.Load(infoFile); var ret = new TextIndexingRequest( info.Root.Attribute("LSI").Value, info.Root.Attribute("RSI").Value, info.Root.Attribute("FriendlyName").Value, info.ToString().GetHashCode().ToString(), new IndexingRequestDetails(CultureInfo.InvariantCulture, Encoding.Unicode, info.Root.Attribute("OriginalMimeType").Value, string.Empty, string.Empty), p => File.Open(file, FileMode.Open, FileAccess.Read, FileShare.Read) ); yield return(ret); } }
protected Stream PreExtractionTransform(TextIndexingRequest request) { return(request.Content); }