meilisearch.NET/meilisearch.NET/Extensions/MeilisearchClientExtensions.cs

49 lines
1.6 KiB
C#

using Meilisearch;
namespace meilisearch.NET.Extensions;
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);
}
}