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