Files
Pilz/Pilz.Net/Extensions/ApiMessageExtensions.cs
Pilzinsel64 008b1e9893 die
2025-04-10 11:02:27 +02:00

48 lines
1.4 KiB
C#

using Pilz.Net.Api;
using Pilz.Net.Api.Messages;
using System.Net;
namespace Pilz.Net.Extensions;
public static class ApiMessageExtensions
{
public static ApiResult ToItemResult<T>(this T? @this)
{
return @this.ToItemResult(@this is not null ? HttpStatusCode.OK : HttpStatusCode.NoContent);
}
public static ApiResult ToItemResult<T>(this T? @this, HttpStatusCode statusCode)
{
if (@this == null)
return ApiResult.NotFound();
return new ApiResult(statusCode, @this.ToItemMsg());
}
public static ApiResult ToItemsResult<T>(this IEnumerable<T>? @this)
{
return @this.ToItemsResult(@this is not null && @this.Any() ? HttpStatusCode.OK : HttpStatusCode.NoContent);
}
public static ApiResult ToItemsResult<T>(this IEnumerable<T>? @this, HttpStatusCode statusCode)
{
if (@this == null)
return ApiResult.NotFound();
return new ApiResult(statusCode, @this.ToItemsMsg());
}
public static GeneralItemMessages<T>.Item ToItemMsg<T>(this T @this)
{
return new GeneralItemMessages<T>.Item(@this);
}
public static GeneralItemMessages<T>.Items ToItemsMsg<T>(this IEnumerable<T> @this)
{
return new GeneralItemMessages<T>.Items([.. @this]);
}
public static GeneralItemMessages<T>.Items ToItemsMsg<T>(this T[] @this)
{
return new GeneralItemMessages<T>.Items([.. @this]);
}
}