From 38444d5cd5a0cb3b61f0d39e75fa03602e735b63 Mon Sep 17 00:00:00 2001 From: Damien Date: Sat, 1 Mar 2025 13:49:57 -0500 Subject: [PATCH] fix: new exception classes --- meilisearch.NET.example/Program.cs | 1 + meilisearch.NET/Exceptions/DocumentBatchException.cs | 12 ++++++++++++ .../Exceptions/DocumentManagementException.cs | 10 ++++++++++ meilisearch.NET/Exceptions/DocumentSyncException.cs | 7 +++++++ .../Exceptions/DocumentValidationException.cs | 7 +++++++ .../Exceptions/IndexCompressionException.cs | 12 ++++++++++++ .../Exceptions/IndexLimitExceededException.cs | 7 +++++++ .../Exceptions/IndexManagementException.cs | 10 ++++++++++ meilisearch.NET/Exceptions/IndexNotFoundException.cs | 12 ++++++++++++ meilisearch.NET/Exceptions/MeiliSearchException.cs | 10 ++++++++++ .../Exceptions/ProcessManagementException.cs | 10 ++++++++++ .../Exceptions/ProcessNotRunningException.cs | 6 ++++++ meilisearch.NET/Exceptions/ProcessStartException.cs | 6 ++++++ meilisearch.NET/Exceptions/ProcessStopException.cs | 6 ++++++ .../Extensions/MeilisearchClientExtensions.cs | 4 ++-- .../Extensions/ServiceCollectionExtension.cs | 5 +++-- .../Services/DocumentManagement/DocumentManager.cs | 2 +- 17 files changed, 122 insertions(+), 5 deletions(-) create mode 100644 meilisearch.NET/Exceptions/DocumentBatchException.cs create mode 100644 meilisearch.NET/Exceptions/DocumentManagementException.cs create mode 100644 meilisearch.NET/Exceptions/DocumentSyncException.cs create mode 100644 meilisearch.NET/Exceptions/DocumentValidationException.cs create mode 100644 meilisearch.NET/Exceptions/IndexCompressionException.cs create mode 100644 meilisearch.NET/Exceptions/IndexLimitExceededException.cs create mode 100644 meilisearch.NET/Exceptions/IndexManagementException.cs create mode 100644 meilisearch.NET/Exceptions/IndexNotFoundException.cs create mode 100644 meilisearch.NET/Exceptions/MeiliSearchException.cs create mode 100644 meilisearch.NET/Exceptions/ProcessManagementException.cs create mode 100644 meilisearch.NET/Exceptions/ProcessNotRunningException.cs create mode 100644 meilisearch.NET/Exceptions/ProcessStartException.cs create mode 100644 meilisearch.NET/Exceptions/ProcessStopException.cs diff --git a/meilisearch.NET.example/Program.cs b/meilisearch.NET.example/Program.cs index 86d3aa5..4a8eebb 100644 --- a/meilisearch.NET.example/Program.cs +++ b/meilisearch.NET.example/Program.cs @@ -4,6 +4,7 @@ using System.Threading.Tasks; using meilisearch.NET; using meilisearch.NET.Configurations; using meilisearch.NET.example; +using meilisearch.NET.Extensions; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; diff --git a/meilisearch.NET/Exceptions/DocumentBatchException.cs b/meilisearch.NET/Exceptions/DocumentBatchException.cs new file mode 100644 index 0000000..433d9bb --- /dev/null +++ b/meilisearch.NET/Exceptions/DocumentBatchException.cs @@ -0,0 +1,12 @@ +namespace meilisearch.NET.Exceptions; + +public class DocumentBatchException : DocumentManagementException +{ + public int BatchSize { get; } + + public DocumentBatchException(int batchSize, Exception innerException) + : base($"Failed to process batch of {batchSize} documents", innerException) + { + BatchSize = batchSize; + } +} \ No newline at end of file diff --git a/meilisearch.NET/Exceptions/DocumentManagementException.cs b/meilisearch.NET/Exceptions/DocumentManagementException.cs new file mode 100644 index 0000000..44d0e83 --- /dev/null +++ b/meilisearch.NET/Exceptions/DocumentManagementException.cs @@ -0,0 +1,10 @@ +namespace meilisearch.NET.Exceptions; + +/// +/// Exception thrown when there are issues with document management +/// +public class DocumentManagementException : MeiliSearchException +{ + public DocumentManagementException(string message) : base(message) { } + public DocumentManagementException(string message, Exception innerException) : base(message, innerException) { } +} \ No newline at end of file diff --git a/meilisearch.NET/Exceptions/DocumentSyncException.cs b/meilisearch.NET/Exceptions/DocumentSyncException.cs new file mode 100644 index 0000000..2f204e9 --- /dev/null +++ b/meilisearch.NET/Exceptions/DocumentSyncException.cs @@ -0,0 +1,7 @@ +namespace meilisearch.NET.Exceptions; + +public class DocumentSyncException : DocumentManagementException +{ + public DocumentSyncException(string message, Exception innerException) + : base($"Failed to sync documents: {message}", innerException) { } +} \ No newline at end of file diff --git a/meilisearch.NET/Exceptions/DocumentValidationException.cs b/meilisearch.NET/Exceptions/DocumentValidationException.cs new file mode 100644 index 0000000..c0dac72 --- /dev/null +++ b/meilisearch.NET/Exceptions/DocumentValidationException.cs @@ -0,0 +1,7 @@ +namespace meilisearch.NET.Exceptions; + +public class DocumentValidationException : DocumentManagementException +{ + public DocumentValidationException(string message) + : base($"Document validation failed: {message}") { } +} \ No newline at end of file diff --git a/meilisearch.NET/Exceptions/IndexCompressionException.cs b/meilisearch.NET/Exceptions/IndexCompressionException.cs new file mode 100644 index 0000000..ecd7d17 --- /dev/null +++ b/meilisearch.NET/Exceptions/IndexCompressionException.cs @@ -0,0 +1,12 @@ +namespace meilisearch.NET.Exceptions; + +public class IndexCompressionException : IndexManagementException +{ + public string IndexName { get; } + + public IndexCompressionException(string indexName, string operation, Exception innerException) + : base($"Failed to {operation} index '{indexName}'", innerException) + { + IndexName = indexName; + } +} \ No newline at end of file diff --git a/meilisearch.NET/Exceptions/IndexLimitExceededException.cs b/meilisearch.NET/Exceptions/IndexLimitExceededException.cs new file mode 100644 index 0000000..34237dd --- /dev/null +++ b/meilisearch.NET/Exceptions/IndexLimitExceededException.cs @@ -0,0 +1,7 @@ +namespace meilisearch.NET.Exceptions; + +public class IndexLimitExceededException : IndexManagementException +{ + public IndexLimitExceededException() + : base("Maximum number of indexes (1000) has been reached") { } +} \ No newline at end of file diff --git a/meilisearch.NET/Exceptions/IndexManagementException.cs b/meilisearch.NET/Exceptions/IndexManagementException.cs new file mode 100644 index 0000000..45d4be9 --- /dev/null +++ b/meilisearch.NET/Exceptions/IndexManagementException.cs @@ -0,0 +1,10 @@ +namespace meilisearch.NET.Exceptions; + +/// +/// Exception thrown when there are issues with index management +/// +public class IndexManagementException : MeiliSearchException +{ + public IndexManagementException(string message) : base(message) { } + public IndexManagementException(string message, Exception innerException) : base(message, innerException) { } +} diff --git a/meilisearch.NET/Exceptions/IndexNotFoundException.cs b/meilisearch.NET/Exceptions/IndexNotFoundException.cs new file mode 100644 index 0000000..30bcb0a --- /dev/null +++ b/meilisearch.NET/Exceptions/IndexNotFoundException.cs @@ -0,0 +1,12 @@ +namespace meilisearch.NET.Exceptions; + +public class IndexNotFoundException : IndexManagementException +{ + public string IndexName { get; } + + public IndexNotFoundException(string indexName) + : base($"Index '{indexName}' not found") + { + IndexName = indexName; + } +} \ No newline at end of file diff --git a/meilisearch.NET/Exceptions/MeiliSearchException.cs b/meilisearch.NET/Exceptions/MeiliSearchException.cs new file mode 100644 index 0000000..a47b03d --- /dev/null +++ b/meilisearch.NET/Exceptions/MeiliSearchException.cs @@ -0,0 +1,10 @@ +namespace meilisearch.NET.Exceptions; + +/// +/// Base exception class for all Meilisearch.NET exceptions +/// +public class MeiliSearchException : Exception +{ + public MeiliSearchException(string message) : base(message) { } + public MeiliSearchException(string message, Exception innerException) : base(message, innerException) { } +} \ No newline at end of file diff --git a/meilisearch.NET/Exceptions/ProcessManagementException.cs b/meilisearch.NET/Exceptions/ProcessManagementException.cs new file mode 100644 index 0000000..871c823 --- /dev/null +++ b/meilisearch.NET/Exceptions/ProcessManagementException.cs @@ -0,0 +1,10 @@ +namespace meilisearch.NET.Exceptions; + +/// +/// Exception thrown when there are issues with the Meilisearch process management +/// +public class ProcessManagementException : MeiliSearchException +{ + public ProcessManagementException(string message) : base(message) { } + public ProcessManagementException(string message, Exception innerException) : base(message, innerException) { } +} \ No newline at end of file diff --git a/meilisearch.NET/Exceptions/ProcessNotRunningException.cs b/meilisearch.NET/Exceptions/ProcessNotRunningException.cs new file mode 100644 index 0000000..06e9a07 --- /dev/null +++ b/meilisearch.NET/Exceptions/ProcessNotRunningException.cs @@ -0,0 +1,6 @@ +namespace meilisearch.NET.Exceptions; + +public class ProcessNotRunningException : ProcessManagementException +{ + public ProcessNotRunningException() : base("Meilisearch process is not running") { } +} \ No newline at end of file diff --git a/meilisearch.NET/Exceptions/ProcessStartException.cs b/meilisearch.NET/Exceptions/ProcessStartException.cs new file mode 100644 index 0000000..24922d8 --- /dev/null +++ b/meilisearch.NET/Exceptions/ProcessStartException.cs @@ -0,0 +1,6 @@ +namespace meilisearch.NET.Exceptions; + +public class ProcessStartException : ProcessManagementException +{ + public ProcessStartException(string message) : base($"Failed to start Meilisearch process: {message}") { } +} \ No newline at end of file diff --git a/meilisearch.NET/Exceptions/ProcessStopException.cs b/meilisearch.NET/Exceptions/ProcessStopException.cs new file mode 100644 index 0000000..f41ec7a --- /dev/null +++ b/meilisearch.NET/Exceptions/ProcessStopException.cs @@ -0,0 +1,6 @@ +namespace meilisearch.NET.Exceptions; + +public class ProcessStopException : ProcessManagementException +{ + public ProcessStopException(string message) : base($"Failed to stop Meilisearch process: {message}") { } +} \ No newline at end of file diff --git a/meilisearch.NET/Extensions/MeilisearchClientExtensions.cs b/meilisearch.NET/Extensions/MeilisearchClientExtensions.cs index 6eb62a1..cab61ef 100644 --- a/meilisearch.NET/Extensions/MeilisearchClientExtensions.cs +++ b/meilisearch.NET/Extensions/MeilisearchClientExtensions.cs @@ -1,6 +1,6 @@ using Meilisearch; -using meilisearch.NET; -using meilisearch.NET.Models; + +namespace meilisearch.NET.Extensions; public static class MeilisearchClientExtensions { diff --git a/meilisearch.NET/Extensions/ServiceCollectionExtension.cs b/meilisearch.NET/Extensions/ServiceCollectionExtension.cs index 656e1ee..d2f138e 100644 --- a/meilisearch.NET/Extensions/ServiceCollectionExtension.cs +++ b/meilisearch.NET/Extensions/ServiceCollectionExtension.cs @@ -1,11 +1,12 @@ using Meilisearch; -using meilisearch.NET; using meilisearch.NET.Configurations; using meilisearch.NET.Services.DocumentManagement; using meilisearch.NET.Services.IndexManagement; using meilisearch.NET.Services.ProcessManagement; using Microsoft.Extensions.DependencyInjection; +namespace meilisearch.NET.Extensions; + public static class ServiceCollectionExtension { public static IServiceCollection AddMeiliSearchService(this IServiceCollection services) @@ -22,4 +23,4 @@ public static class ServiceCollectionExtension services.AddSingleton(); return services; } -} +} \ No newline at end of file diff --git a/meilisearch.NET/Services/DocumentManagement/DocumentManager.cs b/meilisearch.NET/Services/DocumentManagement/DocumentManager.cs index e849ca5..b4475d7 100644 --- a/meilisearch.NET/Services/DocumentManagement/DocumentManager.cs +++ b/meilisearch.NET/Services/DocumentManagement/DocumentManager.cs @@ -29,7 +29,7 @@ public class DocumentManager:IDocumentManager _logger.LogInformation($"Document {document.Id} added to collection."); if (autoCommit) { - SyncDocumentsToServer(); + await SyncDocumentsToServerAsync(); } } public void AddDocument(string repositoryId, IDocument document, bool autoCommit = false)