Implementierung von Enum-basierter Nachrichtenverarbeitung in ResponseService

Erweitern Sie den ResponseService, um Enum-Arrays für Nachrichten zu akzeptieren, und konvertieren Sie sie zu Strings für die Kompatibilität. Beinhaltet aktualisierte Dokumentationskommentare und gewährleistet Rückwärtskompatibilität.
This commit is contained in:
Developer 02
2024-04-18 13:57:19 +02:00
parent 124fe0787b
commit 7b0ef9b0c2
40 changed files with 474 additions and 19 deletions

View File

@@ -75,6 +75,64 @@ namespace DigitalData.Core.Application
/// <returns>A failed service result. The data part of the result will be set to the default value for the specified type,
/// and it will include the provided failure messages.</returns>
public virtual IServiceResult<T> Failed<T>(params string[] messages) => Failed<T>(default, messages);
}
/// <summary>
/// Creates a service message with the specified success flag and enumeration messages.
/// </summary>
/// <param name="isSuccess">Indicates if the operation was successful.</param>
/// <param name="messages">An array of enumeration values associated with the operation.</param>
/// <returns>A new instance of <see cref="ServiceMessage"/> reflecting the operation outcome with enumeration messages.</returns>
public IServiceMessage CreateMessage(bool isSuccess, params Enum[] messages) => CreateMessage(isSuccess, messages.Select(m => m.ToString()).ToArray());
/// <summary>
/// Creates a service result containing the provided data, success flag, and enumeration messages.
/// </summary>
/// <typeparam name="T">The type of the data included in the result.</typeparam>
/// <param name="data">The data to include in the result.</param>
/// <param name="isSuccess">Indicates if the operation was successful.</param>
/// <param name="messages">An array of enumeration values associated with the operation.</param>
/// <returns>A new instance of <see cref="ServiceResult{T}"/> with the specified data and outcome using enumeration messages.</returns>
public IServiceResult<T> CreateResult<T>(T? data, bool isSuccess, params Enum[] messages) => CreateResult(data, isSuccess, messages.Select(m => m.ToString()).ToArray());
/// <summary>
/// Creates a successful service message using enumeration messages.
/// </summary>
/// <param name="messages">An array of success enumeration values.</param>
/// <returns>A successful service message.</returns>
public IServiceMessage Successful(params Enum[] messages) => CreateMessage(true, messages.Select(m => m.ToString()).ToArray());
/// <summary>
/// Creates a failed service message using enumeration messages.
/// </summary>
/// <param name="messages">An array of failure enumeration values.</param>
/// <returns>A failed service message.</returns>
public IServiceMessage Failed(params Enum[] messages) => CreateMessage(false, messages.Select(m => m.ToString()).ToArray());
/// <summary>
/// Creates a successful service result with the provided data using enumeration messages.
/// </summary>
/// <typeparam name="T">The type of data included in the result.</typeparam>
/// <param name="data">The data to include in the result.</param>
/// <param name="messages">An array of success enumeration values.</param>
/// <returns>A successful service result containing the specified data.</returns>
public IServiceResult<T> Successful<T>(T data, params Enum[] messages) => CreateResult(data, true, messages.Select(m => m.ToString()).ToArray());
/// <summary>
/// Creates a failed service result, optionally including data, using enumeration messages.
/// </summary>
/// <typeparam name="T">The type of data the service result can contain.</typeparam>
/// <param name="data">Optional data to include in the failed result.</param>
/// <param name="messages">An array of failure enumeration values.</param>
/// <returns>A failed service result, which may or may not contain the specified data.</returns>
public IServiceResult<T> Failed<T>(T? data = default, params Enum[] messages) => CreateResult(data, false, messages.Select(m => m.ToString()).ToArray());
/// <summary>
/// Creates a failed service result using only failure messages, without explicitly including data.
/// </summary>
/// <typeparam name="T">The type of data the service result can contain. The result will contain the default value for this type.</typeparam>
/// <param name="messages">An array of failure enumeration values that provide details about the reasons for the operation's failure.</param>
/// <returns>A failed service result. The data part of the result will be set to the default value for the specified type,
/// and it will include the provided failure messages.</returns>
public IServiceResult<T> Failed<T>(params Enum[] messages) => Failed<T>(default(T), messages);
}
}