diff --git a/Pilz.Net/Api/ApiMessage.cs b/Pilz.Net/Api/ApiMessage.cs index 64486fc..c33eb9f 100644 --- a/Pilz.Net/Api/ApiMessage.cs +++ b/Pilz.Net/Api/ApiMessage.cs @@ -2,4 +2,9 @@ public abstract class ApiMessage { + private class EmptyApiMessage : ApiMessage { } + + public ApiMessage Empty { get; } = new EmptyApiMessage(); + + public bool IsEmpty => this is EmptyApiMessage; } diff --git a/Pilz.Net/Api/ApiResponse.cs b/Pilz.Net/Api/ApiResponse.cs index 2af962b..0ccee85 100644 --- a/Pilz.Net/Api/ApiResponse.cs +++ b/Pilz.Net/Api/ApiResponse.cs @@ -5,9 +5,11 @@ namespace Pilz.Net.Api; public record class ApiResponse( HttpStatusCode StatusCode) { + public bool IsOk => StatusCode != HttpStatusCode.OK; + public void EnsureOk() { - if (StatusCode != HttpStatusCode.OK) + if (!IsOk) throw new Exception("Api return is not ok!"); } } diff --git a/Pilz.Net/Api/ApiResponse{T}.cs b/Pilz.Net/Api/ApiResponse{T}.cs index f015dac..7f26eb9 100644 --- a/Pilz.Net/Api/ApiResponse{T}.cs +++ b/Pilz.Net/Api/ApiResponse{T}.cs @@ -8,10 +8,13 @@ public record class ApiResponse( T? Message) where T : ApiMessage { + [MemberNotNullWhen(true, nameof(Message))] + public bool IsOk => StatusCode == HttpStatusCode.OK && Message is not null; + [MemberNotNull(nameof(Message))] public void EnsureOk() { - if (StatusCode != HttpStatusCode.OK || Message is null) + if (!IsOk) throw new Exception("Api return is not ok!"); } } diff --git a/Pilz.Net/ConnectionManagerBase.cs b/Pilz.Net/ConnectionManagerBase.cs index 312f752..72dda84 100644 --- a/Pilz.Net/ConnectionManagerBase.cs +++ b/Pilz.Net/ConnectionManagerBase.cs @@ -7,7 +7,7 @@ namespace Pilz.Net; public abstract class ConnectionManagerBase(int port) { private const int HEADER_LENGTH = 12; - + private bool listening = false; private readonly Dictionary> dicData = [];