internal static void InitIndex(GlobalConfiguration globalConfiguration) { if (index == null) { string indexedFilesDirectory = globalConfiguration.GetSearchConfiguration().GetIndexedFilesDirectory(); index = new Index(globalConfiguration.GetSearchConfiguration().GetIndexDirectory(), true); index.Events.OperationProgressChanged += (sender, args) => { if (PassRequiredStatusDict.ContainsKey(args.LastDocumentPath) && args.LastDocumentStatus.ToString() == DocumentStatus.SuccessfullyProcessed.ToString()) { PassRequiredStatusDict.Remove(args.LastDocumentPath); } if (FileIndexingStatusDict.ContainsKey(args.LastDocumentPath)) { if (args.LastDocumentStatus.ToString() == DocumentStatus.ProcessedWithError.ToString() && PassRequiredStatusDict.ContainsKey(args.LastDocumentPath)) { FileIndexingStatusDict[args.LastDocumentPath] = "PasswordRequired"; } else { FileIndexingStatusDict[args.LastDocumentPath] = args.LastDocumentStatus.ToString(); } } else { if (args.LastDocumentStatus.ToString() == DocumentStatus.ProcessedWithError.ToString() && PassRequiredStatusDict.ContainsKey(args.LastDocumentPath)) { FileIndexingStatusDict.Add(args.LastDocumentPath, "PasswordRequired"); } else { FileIndexingStatusDict.Add(args.LastDocumentPath, args.LastDocumentStatus.ToString()); } } }; index.Events.PasswordRequired += (sender, args) => { if (PassRequiredStatusDict.ContainsKey(args.DocumentFullPath)) { PassRequiredStatusDict[args.DocumentFullPath] = "PasswordRequired"; } else { PassRequiredStatusDict.Add(args.DocumentFullPath, "PasswordRequired"); } }; index.Add(indexedFilesDirectory); InitSpecailCharsList(); } }
internal static void RemoveFileFromIndex(string guid) { if (File.Exists(guid)) { File.Delete(guid); if (FileIndexingStatusDict.ContainsKey(guid)) { FileIndexingStatusDict.Remove(guid); } } index.Update(GetUpdateOptions()); index.Optimize(); }