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