using System; using System.Collections.Generic; using System.Threading.Tasks; using System.Linq; namespace BokBonCheck { public class BookSearchResult { public string SiteName { get; set; } public int BookCount { get; set; } public string SearchTerm { get; set; } public DateTime SearchTime { get; set; } public string ErrorMessage { get; set; } public bool IsSuccess { get; set; } } public class BookSearchService { private readonly List _searchers; public BookSearchService() { _searchers = new List { new NamguLibrarySearcher() // 나중에 다른 도서관 검색기를 여기에 추가할 수 있습니다 }; } public async Task> SearchBooksAsync(string searchTerm) { var results = new List(); foreach (var searcher in _searchers) { var result = await searcher.SearchAsync(searchTerm); results.Add(result); } return results; } public void AddSearcher(ILibrarySearcher searcher) { if (!_searchers.Any(s => s.SiteName == searcher.SiteName)) { _searchers.Add(searcher); } } public void RemoveSearcher(string siteName) { var searcher = _searchers.FirstOrDefault(s => s.SiteName == siteName); if (searcher != null) { _searchers.Remove(searcher); } } public List GetAvailableSites() { return _searchers.Select(s => s.SiteName).ToList(); } public void ClearSearchers() { _searchers.Clear(); } } }