49 lines
1.6 KiB
C#
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);
|
|
}
|
|
} |