public HttpResponseMessage GetFileStatus(PostedDataEntity[] postedData) { var indexingFilesList = new List <IndexedFileDescriptionEntity>(); foreach (var file in postedData) { var indexingFile = new IndexedFileDescriptionEntity(); string value; if (SearchService.FileIndexingStatusDict.TryGetValue(file.guid, out value)) { if (value.Equals("PasswordRequired")) { return(this.Request.CreateResponse(HttpStatusCode.Forbidden, new Resources().GenerateException(new Exception("Password required.")))); } indexingFile.documentStatus = value; } else { indexingFile.documentStatus = "Indexing"; } indexingFile.guid = file.guid; indexingFilesList.Add(indexingFile); } return(this.Request.CreateResponse(HttpStatusCode.OK, indexingFilesList)); }
/// <summary> /// Loads documents. /// </summary> /// <param name="filesDirectory">Files directory.</param> /// <returns>List of documents.</returns> public List <IndexedFileDescriptionEntity> LoadFiles(string filesDirectory) { List <string> allFiles = new List <string>(Directory.GetFiles(filesDirectory)); allFiles.AddRange(Directory.GetDirectories(filesDirectory)); List <IndexedFileDescriptionEntity> fileList = new List <IndexedFileDescriptionEntity>(); allFiles.Sort(new FileNameComparator()); allFiles.Sort(new FileDateComparator()); foreach (string file in allFiles) { FileInfo fileInfo = new FileInfo(file); if (!(Path.GetFileName(file).StartsWith(".") || fileInfo.Attributes.HasFlag(FileAttributes.Hidden) || Path.GetFileName(file).Equals(Path.GetFileName(this.globalConfiguration.GetSearchConfiguration().GetFilesDirectory())) || Path.GetFileName(file).Equals(Path.GetFileName(this.globalConfiguration.GetSearchConfiguration().GetIndexDirectory())) || Path.GetFileName(file).Equals(Path.GetFileName(this.globalConfiguration.GetSearchConfiguration().GetIndexedFilesDirectory())))) { IndexedFileDescriptionEntity fileDescription = new IndexedFileDescriptionEntity { guid = Path.GetFullPath(file), name = Path.GetFileName(file), // set is directory true/false isDirectory = fileInfo.Attributes.HasFlag(FileAttributes.Directory), }; // set file size if (!fileDescription.isDirectory) { fileDescription.size = fileInfo.Length; } if (filesDirectory.Contains(this.globalConfiguration.GetSearchConfiguration().GetIndexedFilesDirectory())) { string value; if (SearchService.FileIndexingStatusDict.TryGetValue(fileDescription.guid, out value)) { fileDescription.documentStatus = value; } else { fileDescription.documentStatus = "Indexing"; } } fileList.Add(fileDescription); } } return(fileList); }