fix: bugs with split up classes
All checks were successful
build-packages / meilisearch-dotnet-packages (push) Successful in 6m3s

This commit is contained in:
Damien 2025-03-01 13:21:25 -05:00
parent f21b92bc1f
commit 845d0a332b
4 changed files with 77 additions and 24 deletions

View File

@ -71,8 +71,6 @@ public class test
service.CreateIndex<document>("test");
service.AddDocument("test", new document()
{
Id = Guid.NewGuid(),

View File

@ -0,0 +1,49 @@
using Meilisearch;
using meilisearch.NET;
using meilisearch.NET.Models;
public static class MeilisearchClientExtensions
{
public static async Task<T> SDK<T>(this MeiliSearchService service, string indexName, Func<MeilisearchClient, Task<T>> action)
{
var client = service.Client;
var indexManager = service.IndexManager;
if (client == null)
throw new InvalidOperationException("MeilisearchClient is not initialized");
if (!string.IsNullOrEmpty(indexName))
{
var index = await client.GetIndexAsync("index_bindings");
var doc = await index.GetDocumentAsync<meilisearch.NET.Models.Index>(indexName);
if (doc.IsCompressed)
{
await indexManager.SetIndexEnabledAsync(indexName, true);
}
}
var result = await action(client);
return result;
}
public static async Task SDK(this MeiliSearchService service, string indexName, Func<MeilisearchClient, Task> action)
{
var client = service.Client;
var indexManager = service.IndexManager;
if (client == null)
throw new InvalidOperationException("MeilisearchClient is not initialized");
if (!string.IsNullOrEmpty(indexName))
{
var index = await client.GetIndexAsync("index_bindings");
var doc = await index.GetDocumentAsync<meilisearch.NET.Models.Index>(indexName);
if (doc.IsCompressed)
{
await indexManager.SetIndexEnabledAsync(indexName, true);
}
}
await action(client);
}
}

View File

@ -1,4 +1,5 @@
using Meilisearch;
using meilisearch.NET;
using meilisearch.NET.Configurations;
using meilisearch.NET.Services.DocumentManagement;
using meilisearch.NET.Services.IndexManagement;

View File

@ -1,52 +1,57 @@
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
{
private readonly MeiliSearchProcessManager _processManager;
private readonly IIndexManager _indexManager;
private readonly IDocumentManager _documentManager;
internal readonly MeiliSearchProcessManager ProcessManager;
internal readonly IIndexManager IndexManager;
internal readonly IDocumentManager DocumentManager;
internal readonly MeilisearchClient Client;
public MeiliSearchService(
MeiliSearchProcessManager processManager,
IIndexManager indexManager,
IDocumentManager documentManager)
IDocumentManager documentManager,
MeilisearchClient client)
{
_processManager = processManager;
_indexManager = indexManager;
_documentManager = documentManager;
_processManager.StartProcess();
Client = client;
ProcessManager = processManager;
IndexManager = indexManager;
DocumentManager = documentManager;
ProcessManager.StartProcess().Wait();
}
public async Task Start() => await _processManager.StartProcess();
public async Task Start() => await ProcessManager.StartProcess();
public long GetTotalStorageUsage(bool useCompressedSize = true)
=> _indexManager.GetTotalStorageUsage(useCompressedSize);
=> IndexManager.GetTotalStorageUsage(useCompressedSize);
public long GetIndexStorageUsage(string indexName, bool useCompressedSize = true)
=> _indexManager.GetIndexStorageUsage(indexName, useCompressedSize);
public void Stop() => _processManager.StopProcess();
=> IndexManager.GetIndexStorageUsage(indexName, useCompressedSize);
public void Stop() => ProcessManager.StopProcess();
public bool IsRunning() => _processManager.IsProcessRunning();
public bool IsRunning() => ProcessManager.IsProcessRunning();
public Task SetIndexEnabled(string indexName, bool enabled)
=> _indexManager.SetIndexEnabledAsync(indexName, enabled);
=> IndexManager.SetIndexEnabledAsync(indexName, enabled);
public ProcessResourceStats GetResourceUsage() => _processManager.GetResourceUsage();
public ProcessResourceStats GetResourceUsage() => ProcessManager.GetResourceUsage();
public Task<List<string>> GetAllIndexes() => _indexManager.GetAllIndexes();
public Task<List<string>> GetAllIndexes() => IndexManager.GetAllIndexes();
public Task CreateIndex<T>(string indexName) where T : IDocument
=> _indexManager.CreateIndexAsync<T>(indexName);
=> IndexManager.CreateIndexAsync<T>(indexName);
public Task DeleteIndex(string indexName) => _indexManager.DeleteIndexAsync(indexName);
public Task DeleteIndex(string indexName) => IndexManager.DeleteIndexAsync(indexName);
public void AddDocument(string repositoryId, IDocument document, bool autoCommit = false)
=> _documentManager.AddDocument(repositoryId, document, autoCommit);
=> DocumentManager.AddDocument(repositoryId, document, autoCommit);
public void Dispose()
{
_processManager.Dispose();
ProcessManager.Dispose();
}
}
}