meilisearch.NET/meilisearch.NET/MeiliSearchService.cs
Damien 845d0a332b
All checks were successful
build-packages / meilisearch-dotnet-packages (push) Successful in 6m3s
fix: bugs with split up classes
2025-03-01 13:21:25 -05:00

57 lines
2.1 KiB
C#

using Meilisearch;
using meilisearch.NET.Interfaces;
using meilisearch.NET.Services.DocumentManagement;
using meilisearch.NET.Services.IndexManagement;
using meilisearch.NET.Services.ProcessManagement;
namespace meilisearch.NET;
public class MeiliSearchService : IDisposable
{
internal readonly MeiliSearchProcessManager ProcessManager;
internal readonly IIndexManager IndexManager;
internal readonly IDocumentManager DocumentManager;
internal readonly MeilisearchClient Client;
public MeiliSearchService(
MeiliSearchProcessManager processManager,
IIndexManager indexManager,
IDocumentManager documentManager,
MeilisearchClient client)
{
Client = client;
ProcessManager = processManager;
IndexManager = indexManager;
DocumentManager = documentManager;
ProcessManager.StartProcess().Wait();
}
public async Task Start() => await ProcessManager.StartProcess();
public long GetTotalStorageUsage(bool useCompressedSize = true)
=> IndexManager.GetTotalStorageUsage(useCompressedSize);
public long GetIndexStorageUsage(string indexName, bool useCompressedSize = true)
=> IndexManager.GetIndexStorageUsage(indexName, useCompressedSize);
public void Stop() => ProcessManager.StopProcess();
public bool IsRunning() => ProcessManager.IsProcessRunning();
public Task SetIndexEnabled(string indexName, bool enabled)
=> IndexManager.SetIndexEnabledAsync(indexName, enabled);
public ProcessResourceStats GetResourceUsage() => ProcessManager.GetResourceUsage();
public Task<List<string>> GetAllIndexes() => IndexManager.GetAllIndexes();
public Task CreateIndex<T>(string indexName) where T : IDocument
=> IndexManager.CreateIndexAsync<T>(indexName);
public Task DeleteIndex(string indexName) => IndexManager.DeleteIndexAsync(indexName);
public void AddDocument(string repositoryId, IDocument document, bool autoCommit = false)
=> DocumentManager.AddDocument(repositoryId, document, autoCommit);
public void Dispose()
{
ProcessManager.Dispose();
}
}