using System; using ZeroLevel.Sleopok.Engine.Models; using ZeroLevel.Sleopok.Engine.Services.Indexes; using ZeroLevel.Sleopok.Engine.Services.Storage; namespace ZeroLevel.Sleopok.Engine { public class SleoEngine { private readonly DataStorage _storage; private readonly IndexInfo _indexInfo; public SleoEngine(string indexFolder, Func identityExtractor) { _storage = new DataStorage(indexFolder); _indexInfo = new IndexInfo(identityExtractor); } public bool HasData() { var total = 0; // healthy foreach (var field in _indexInfo.Fields) { var count = _storage.HasData(field.Name); Log.Debug($"Field: {field.Name}: {count} files"); total += count; } return total > 0; } public IIndexBuilder CreateBuilder() { return new IndexBuilder(_storage, _indexInfo); } public IIndexReader CreateReader() { return new IndexReader(_storage, _indexInfo); } } }