add more helper methods

This commit is contained in:
2024-08-22 14:38:15 +02:00
parent 519c292a1f
commit ab268e6584
4 changed files with 13 additions and 3 deletions

View File

@@ -2,4 +2,9 @@
public abstract class ApiMessage public abstract class ApiMessage
{ {
private class EmptyApiMessage : ApiMessage { }
public ApiMessage Empty { get; } = new EmptyApiMessage();
public bool IsEmpty => this is EmptyApiMessage;
} }

View File

@@ -5,9 +5,11 @@ namespace Pilz.Net.Api;
public record class ApiResponse( public record class ApiResponse(
HttpStatusCode StatusCode) HttpStatusCode StatusCode)
{ {
public bool IsOk => StatusCode != HttpStatusCode.OK;
public void EnsureOk() public void EnsureOk()
{ {
if (StatusCode != HttpStatusCode.OK) if (!IsOk)
throw new Exception("Api return is not ok!"); throw new Exception("Api return is not ok!");
} }
} }

View File

@@ -8,10 +8,13 @@ public record class ApiResponse<T>(
T? Message) T? Message)
where T : ApiMessage where T : ApiMessage
{ {
[MemberNotNullWhen(true, nameof(Message))]
public bool IsOk => StatusCode == HttpStatusCode.OK && Message is not null;
[MemberNotNull(nameof(Message))] [MemberNotNull(nameof(Message))]
public void EnsureOk() public void EnsureOk()
{ {
if (StatusCode != HttpStatusCode.OK || Message is null) if (!IsOk)
throw new Exception("Api return is not ok!"); throw new Exception("Api return is not ok!");
} }
} }

View File

@@ -7,7 +7,7 @@ namespace Pilz.Net;
public abstract class ConnectionManagerBase(int port) public abstract class ConnectionManagerBase(int port)
{ {
private const int HEADER_LENGTH = 12; private const int HEADER_LENGTH = 12;
private bool listening = false; private bool listening = false;
private readonly Dictionary<int, Dictionary<int, byte[]>> dicData = []; private readonly Dictionary<int, Dictionary<int, byte[]>> dicData = [];