diff --git a/.github/workflows/mainworkflow.yml b/.github/workflows/mainworkflow.yml
index c8c3466..ba28f55 100644
--- a/.github/workflows/mainworkflow.yml
+++ b/.github/workflows/mainworkflow.yml
@@ -20,7 +20,7 @@ jobs:
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
- dotnet-version: 8.0.x
+ dotnet-version: 9.0.x
- name: Restore dependencies
run: dotnet restore
- name: Build
diff --git a/JMayer.Example.WindowsService/BSM/BSM.cs b/JMayer.Example.WindowsService/BSM/BSM.cs
index 22209e3..7010bc3 100644
--- a/JMayer.Example.WindowsService/BSM/BSM.cs
+++ b/JMayer.Example.WindowsService/BSM/BSM.cs
@@ -38,6 +38,11 @@ public class BSM : ITypeB
///
public const string Delete = "DEL";
+ ///
+ /// The constant for the element separator.
+ ///
+ public const char ElementSeparator = '/';
+
///
/// The constant for the end of BSM.
///
@@ -81,22 +86,22 @@ public BSM(BSM copy)
{
ChangeOfStatus = copy.ChangeOfStatus;
- if (copy.BaggageTagDetails != null)
+ if (copy.BaggageTagDetails is not null)
{
BaggageTagDetails = new BaggageTagDetails(copy.BaggageTagDetails);
}
- if (copy.OutboundFlight != null)
+ if (copy.OutboundFlight is not null)
{
OutboundFlight = new OutboundFlight(copy.OutboundFlight);
}
- if (copy.PassengerName != null)
+ if (copy.PassengerName is not null)
{
PassengerName = new PassengerName(copy.PassengerName);
}
- if (copy.VersionSupplementaryData != null)
+ if (copy.VersionSupplementaryData is not null)
{
VersionSupplementaryData = new VersionSupplementaryData(copy.VersionSupplementaryData);
}
@@ -111,11 +116,11 @@ private static string GetChangeOfStatus(string bsm)
{
string changeOfStatus = bsm.Substring(0, 3);
- if (changeOfStatus == Change)
+ if (changeOfStatus is Change)
{
return Change;
}
- else if (changeOfStatus == Delete)
+ else if (changeOfStatus is Delete)
{
return Delete;
}
@@ -149,7 +154,7 @@ public void Parse(string typeBString)
int startIndex = typeBString.IndexOf('.', totalBytesProcessed);
//Dot was not found so exit.
- if (startIndex == -1)
+ if (startIndex is -1)
{
break;
}
@@ -157,7 +162,7 @@ public void Parse(string typeBString)
int endIndex = typeBString.IndexOf('.', startIndex + 1);
//If the next dot is not found then assume this is the last line.
- if (endIndex == -1)
+ if (endIndex is -1)
{
endIndex = typeBString.Length;
}
@@ -195,22 +200,22 @@ public string ToTypeB()
{
string dotElements = string.Empty;
- if (OutboundFlight != null)
+ if (OutboundFlight is not null)
{
dotElements += OutboundFlight.ToTypeB();
}
- if (BaggageTagDetails != null)
+ if (BaggageTagDetails is not null)
{
dotElements += BaggageTagDetails.ToTypeB();
}
- if (PassengerName != null)
+ if (PassengerName is not null)
{
dotElements += PassengerName.ToTypeB();
}
- if (VersionSupplementaryData != null)
+ if (VersionSupplementaryData is not null)
{
dotElements += VersionSupplementaryData.ToTypeB();
}
diff --git a/JMayer.Example.WindowsService/BSM/BSMEqualityComparer.cs b/JMayer.Example.WindowsService/BSM/BSMEqualityComparer.cs
index 8e68531..69d7062 100644
--- a/JMayer.Example.WindowsService/BSM/BSMEqualityComparer.cs
+++ b/JMayer.Example.WindowsService/BSM/BSMEqualityComparer.cs
@@ -10,7 +10,7 @@ public class BSMEqualityComparer : IEqualityComparer
///
public bool Equals(BSM? x, BSM? y)
{
- if (x == null || y == null)
+ if (x is null || y is null)
{
return false;
}
diff --git a/JMayer.Example.WindowsService/BSM/BSMGenerator.cs b/JMayer.Example.WindowsService/BSM/BSMGenerator.cs
index fd128b4..fd4ab2a 100644
--- a/JMayer.Example.WindowsService/BSM/BSMGenerator.cs
+++ b/JMayer.Example.WindowsService/BSM/BSMGenerator.cs
@@ -167,10 +167,7 @@ public class BSMGenerator
///
/// The default constructor.
///
- public BSMGenerator()
- {
- SetRandomDestination();
- }
+ public BSMGenerator() => SetRandomDestination();
///
/// The method returns the next BSM.
@@ -263,8 +260,6 @@ private void IncrementPassengerCount()
///
/// The method sets a random destination.
///
- private void SetRandomDestination()
- {
- _destinationIndex = new Random(DateTime.Now.Second).Next(0, _destinations.Length - 1);
- }
+ private void SetRandomDestination()
+ => _destinationIndex = new Random(DateTime.Now.Second).Next(0, _destinations.Length - 1);
}
diff --git a/JMayer.Example.WindowsService/BSM/BSMPDU.cs b/JMayer.Example.WindowsService/BSM/BSMPDU.cs
index 9fd1fcc..27d6fbc 100644
--- a/JMayer.Example.WindowsService/BSM/BSMPDU.cs
+++ b/JMayer.Example.WindowsService/BSM/BSMPDU.cs
@@ -15,32 +15,29 @@ public class BSMPDU : PDU
public BSM BSM { get; init; } = new();
///
- public override byte[] ToBytes()
- {
- return Encoding.ASCII.GetBytes(BSM.ToTypeB());
- }
+ public override byte[] ToBytes() => Encoding.ASCII.GetBytes(BSM.ToTypeB());
///
public override List Validate()
{
List validationResults = [];
- if (BSM.BaggageTagDetails != null)
+ if (BSM.BaggageTagDetails is not null)
{
Validator.TryValidateObject(BSM.BaggageTagDetails, new ValidationContext(BSM.BaggageTagDetails), validationResults, validateAllProperties: true);
}
- if (BSM.OutboundFlight != null)
+ if (BSM.OutboundFlight is not null)
{
Validator.TryValidateObject(BSM.OutboundFlight, new ValidationContext(BSM.OutboundFlight), validationResults, validateAllProperties: true);
}
- if (BSM.PassengerName != null)
+ if (BSM.PassengerName is not null)
{
Validator.TryValidateObject(BSM.PassengerName, new ValidationContext(BSM.PassengerName), validationResults, validateAllProperties: true);
}
- if (BSM.VersionSupplementaryData != null)
+ if (BSM.VersionSupplementaryData is not null)
{
Validator.TryValidateObject(BSM.VersionSupplementaryData, new ValidationContext(BSM.VersionSupplementaryData), validationResults, validateAllProperties: true);
}
diff --git a/JMayer.Example.WindowsService/BSM/BSMParser.cs b/JMayer.Example.WindowsService/BSM/BSMParser.cs
index a34597c..4780f4c 100644
--- a/JMayer.Example.WindowsService/BSM/BSMParser.cs
+++ b/JMayer.Example.WindowsService/BSM/BSMParser.cs
@@ -21,7 +21,7 @@ protected override PDUParserResult SubClassParse(byte[] bytes)
int startIndex = bytesAsString.IndexOf(BSM.StartOfBSM, totalBytesProcessed);
//Start was not found so exit.
- if (startIndex == -1)
+ if (startIndex is -1)
{
break;
}
@@ -29,7 +29,7 @@ protected override PDUParserResult SubClassParse(byte[] bytes)
int endIndex = bytesAsString.IndexOf(BSM.EndOfBSM, startIndex);
//End was not found or start is actually the end, exit.
- if (endIndex == -1 || startIndex == endIndex)
+ if (endIndex is -1 || startIndex == endIndex)
{
break;
}
diff --git a/JMayer.Example.WindowsService/BSM/BaggageTagDetailEqualityComparer.cs b/JMayer.Example.WindowsService/BSM/BaggageTagDetailEqualityComparer.cs
index 59e5741..1b1f254 100644
--- a/JMayer.Example.WindowsService/BSM/BaggageTagDetailEqualityComparer.cs
+++ b/JMayer.Example.WindowsService/BSM/BaggageTagDetailEqualityComparer.cs
@@ -10,11 +10,11 @@ public class BaggageTagDetailEqualityComparer : IEqualityComparer
public bool Equals(BaggageTagDetails? x, BaggageTagDetails? y)
{
- if (x == null && y == null)
+ if (x is null && y is null)
{
return true;
}
- else if (x != null && y != null)
+ else if (x is not null && y is not null)
{
if (x.Count != y.Count)
{
@@ -24,7 +24,7 @@ public bool Equals(BaggageTagDetails? x, BaggageTagDetails? y)
{
foreach (string tag in x.BaggageTagNumbers)
{
- if (!y.BaggageTagNumbers.Contains(tag))
+ if (y.BaggageTagNumbers.Contains(tag) is false)
{
return false;
}
@@ -40,8 +40,5 @@ public bool Equals(BaggageTagDetails? x, BaggageTagDetails? y)
}
///
- public int GetHashCode([DisallowNull] BaggageTagDetails obj)
- {
- throw new NotImplementedException();
- }
+ public int GetHashCode([DisallowNull] BaggageTagDetails obj) => obj.GetHashCode();
}
diff --git a/JMayer.Example.WindowsService/BSM/BaggageTagDetails.cs b/JMayer.Example.WindowsService/BSM/BaggageTagDetails.cs
index 99838cc..e604d12 100644
--- a/JMayer.Example.WindowsService/BSM/BaggageTagDetails.cs
+++ b/JMayer.Example.WindowsService/BSM/BaggageTagDetails.cs
@@ -10,10 +10,7 @@ public class BaggageTagDetails : ITypeB
///
/// The property gets the number of baggage tag numbers.
///
- public int Count
- {
- get => BaggageTagNumbers.Count;
- }
+ public int Count => BaggageTagNumbers.Count;
///
/// The property gets a list of baggage tag numbers.
@@ -30,6 +27,11 @@ public int Count
///
public const string DotNElement = ".N";
+ ///
+ /// The constant for the maximum character length of the .N element.
+ ///
+ private const int DotnMaximumCharacterLength = 13;
+
///
/// The default constructor.
///
@@ -45,32 +47,41 @@ public BaggageTagDetails() { }
public void Parse(string typeBString)
{
//Remove the identifier and new line.
- typeBString = typeBString.Replace($"{DotNElement}/", string.Empty);
+ typeBString = typeBString.Replace($"{DotNElement}{BSM.ElementSeparator}", string.Empty);
typeBString = typeBString.Replace(Environment.NewLine, string.Empty);
- if (typeBString.Length is 13)
+ if (typeBString.Length is not DotnMaximumCharacterLength)
+ {
+ return;
+ }
+
+ if (long.TryParse(typeBString.AsSpan(0, 10), out long iataNumber) is false)
+ {
+ return;
+ }
+
+ if (int.TryParse(typeBString.AsSpan(10, 3), out int length) is false)
+ {
+ return;
+ }
+
+ for (int index = 0; index < length; index++)
{
- if (long.TryParse(typeBString.AsSpan(0, 10), out long iataNumber) && int.TryParse(typeBString.AsSpan(10, 3), out int length))
- {
- for (int index = 0; index < length; index++)
- {
- string iataString = (iataNumber + index).ToString().PadLeft(10, '0');
- BaggageTagNumbers.Add(iataString);
- }
- }
+ string iataString = (iataNumber + index).ToString().PadLeft(10, '0');
+ BaggageTagNumbers.Add(iataString);
}
}
///
public string ToTypeB()
{
- if (Count == 0)
+ if (Count is 0)
{
return string.Empty;
}
else
{
- return $"{DotNElement}/{BaggageTagNumbers[0]}{Count:D3}{Environment.NewLine}";
+ return $"{DotNElement}{BSM.ElementSeparator}{BaggageTagNumbers[0]}{Count:D3}{Environment.NewLine}";
}
}
}
diff --git a/JMayer.Example.WindowsService/BSM/OutboundFlight.cs b/JMayer.Example.WindowsService/BSM/OutboundFlight.cs
index d07e097..544c6d3 100644
--- a/JMayer.Example.WindowsService/BSM/OutboundFlight.cs
+++ b/JMayer.Example.WindowsService/BSM/OutboundFlight.cs
@@ -48,6 +48,11 @@ public class OutboundFlight : ITypeB
[RegularExpression("^([0-9]{4})|([0-9]{4}[A-Z]{1})$", ErrorMessage = "The flight number must be 4 digits and optionally a capital letter.")]
public string FlightNumber { get; set; } = string.Empty;
+ ///
+ /// The constant for the minimum character length for the airline/flight number element.
+ ///
+ private const int MiniumumFlightElementCharacterLength = 6;
+
///
/// The default constructor.
///
@@ -70,37 +75,37 @@ public OutboundFlight(OutboundFlight copy)
public void Parse(string typeBString)
{
//Remove the identifier so the elements can be broken apart with Split().
- typeBString = typeBString.Replace($"{DotFElement}/", string.Empty);
+ typeBString = typeBString.Replace($"{DotFElement}{BSM.ElementSeparator}", string.Empty);
typeBString = typeBString.Replace(Environment.NewLine, string.Empty);
- string[] elements = typeBString.Split('/');
+ string[] elements = typeBString.Split(BSM.ElementSeparator);
//Handle parsing the airline and flight number.
- if (elements.Length > 0 && !string.IsNullOrEmpty(elements[0]))
+ if (elements.Length > 0 && string.IsNullOrEmpty(elements[0]) is false)
{
string airlineAndFlight = elements[0];
- if (airlineAndFlight.Length >= 6)
+ if (airlineAndFlight.Length >= MiniumumFlightElementCharacterLength)
{
Airline = airlineAndFlight.Substring(0, 2);
- FlightNumber = airlineAndFlight.Substring(2, airlineAndFlight.Length - 2);
+ FlightNumber = airlineAndFlight.Substring(2);
}
}
//Handle parsing the flight date.
- if (elements.Length > 1 && !string.IsNullOrEmpty(elements[1]))
+ if (elements.Length > 1 && string.IsNullOrEmpty(elements[1]) is false)
{
FlightDate = elements[1];
}
//Handle parsing the destination.
- if (elements.Length > 2 && !string.IsNullOrEmpty(elements[2]))
+ if (elements.Length > 2 && string.IsNullOrEmpty(elements[2]) is false)
{
Destination = elements[2];
}
//Handle parsing the class of travel.
- if (elements.Length > 3 && !string.IsNullOrEmpty(elements[3]))
+ if (elements.Length > 3 && string.IsNullOrEmpty(elements[3]) is false)
{
ClassOfTravel = elements[3];
}
@@ -109,17 +114,17 @@ public void Parse(string typeBString)
///
public string ToTypeB()
{
- if (!string.IsNullOrEmpty(ClassOfTravel))
+ if (string.IsNullOrEmpty(ClassOfTravel) is false)
{
- return $"{DotFElement}/{Airline}{FlightNumber}/{FlightDate}/{Destination}/{ClassOfTravel}{Environment.NewLine}";
+ return $"{DotFElement}{BSM.ElementSeparator}{Airline}{FlightNumber}{BSM.ElementSeparator}{FlightDate}{BSM.ElementSeparator}{Destination}{BSM.ElementSeparator}{ClassOfTravel}{Environment.NewLine}";
}
- else if (!string.IsNullOrEmpty(Destination))
+ else if (string.IsNullOrEmpty(Destination) is false)
{
- return $"{DotFElement}/{Airline}{FlightNumber}/{FlightDate}/{Destination}{Environment.NewLine}";
+ return $"{DotFElement}{BSM.ElementSeparator}{Airline}{FlightNumber}{BSM.ElementSeparator}{FlightDate}{BSM.ElementSeparator}{Destination}{Environment.NewLine}";
}
else
{
- return $"{DotFElement}/{Airline}{FlightNumber}/{FlightDate}{Environment.NewLine}";
+ return $"{DotFElement}{BSM.ElementSeparator}{Airline}{FlightNumber}{BSM.ElementSeparator}{FlightDate}{Environment.NewLine}";
}
}
}
diff --git a/JMayer.Example.WindowsService/BSM/OutboundFlightEqualityComparer.cs b/JMayer.Example.WindowsService/BSM/OutboundFlightEqualityComparer.cs
index 0715ea0..0deb4ad 100644
--- a/JMayer.Example.WindowsService/BSM/OutboundFlightEqualityComparer.cs
+++ b/JMayer.Example.WindowsService/BSM/OutboundFlightEqualityComparer.cs
@@ -10,11 +10,11 @@ public class OutboundFlightEqualityComparer : IEqualityComparer
///
public bool Equals(OutboundFlight? x, OutboundFlight? y)
{
- if (x == null && y == null)
+ if (x is null && y is null)
{
return true;
}
- else if (x != null && y != null)
+ else if (x is not null && y is not null)
{
return x.Airline == y.Airline
&& x.ClassOfTravel == y.ClassOfTravel
@@ -29,8 +29,5 @@ public bool Equals(OutboundFlight? x, OutboundFlight? y)
}
///
- public int GetHashCode([DisallowNull] OutboundFlight obj)
- {
- throw new NotImplementedException();
- }
+ public int GetHashCode([DisallowNull] OutboundFlight obj) => obj.GetHashCode();
}
diff --git a/JMayer.Example.WindowsService/BSM/PassengerName.cs b/JMayer.Example.WindowsService/BSM/PassengerName.cs
index b8501a0..0e395b5 100644
--- a/JMayer.Example.WindowsService/BSM/PassengerName.cs
+++ b/JMayer.Example.WindowsService/BSM/PassengerName.cs
@@ -43,13 +43,13 @@ public PassengerName(PassengerName copy)
public void Parse(string typeBString)
{
//Remove the identifier so the elements can be broken apart with Split().
- typeBString = typeBString.Replace($"{DotPElement}/", string.Empty);
+ typeBString = typeBString.Replace($"{DotPElement}{BSM.ElementSeparator}", string.Empty);
typeBString = typeBString.Replace(Environment.NewLine , string.Empty);
- string[] elements = typeBString.Split('/');
+ string[] elements = typeBString.Split(BSM.ElementSeparator);
//Handle parsing the surname.
- if (elements.Length > 0 && !string.IsNullOrEmpty(elements[0]))
+ if (elements.Length > 0 && string.IsNullOrEmpty(elements[0]) is false)
{
//The number of given names can be infront of the surname as either a 1 or 2 digit number
//so remove the number if it exists.
@@ -72,7 +72,7 @@ public void Parse(string typeBString)
{
for (int index = 1; index < elements.Length; index++)
{
- if (!string.IsNullOrEmpty(elements[index]))
+ if (string.IsNullOrEmpty(elements[index]) is false)
{
GivenNames.Add(elements[index]);
}
@@ -87,9 +87,9 @@ public string ToTypeB()
foreach (string givenName in GivenNames)
{
- givenNames += $"/{givenName}";
+ givenNames += $"{BSM.ElementSeparator}{givenName}";
}
- return $"{DotPElement}/{GivenNames.Count}{SurName}{givenNames}{Environment.NewLine}";
+ return $"{DotPElement}{BSM.ElementSeparator}{GivenNames.Count}{SurName}{givenNames}{Environment.NewLine}";
}
}
diff --git a/JMayer.Example.WindowsService/BSM/PassengerNameEqualityComparer.cs b/JMayer.Example.WindowsService/BSM/PassengerNameEqualityComparer.cs
index 23a59db..511ece9 100644
--- a/JMayer.Example.WindowsService/BSM/PassengerNameEqualityComparer.cs
+++ b/JMayer.Example.WindowsService/BSM/PassengerNameEqualityComparer.cs
@@ -10,11 +10,11 @@ public class PassengerNameEqualityComparer : IEqualityComparer
///
public bool Equals(PassengerName? x, PassengerName? y)
{
- if (x == null && y == null)
+ if (x is null && y is null)
{
return true;
}
- else if (x != null && y != null)
+ else if (x is not null && y is not null)
{
if (x.SurName != y.SurName || x.GivenNames.Count != y.GivenNames.Count)
{
@@ -24,7 +24,7 @@ public bool Equals(PassengerName? x, PassengerName? y)
{
foreach (string givenName in x.GivenNames)
{
- if (!y.GivenNames.Contains(givenName))
+ if (y.GivenNames.Contains(givenName) is false)
{
return false;
}
@@ -40,8 +40,5 @@ public bool Equals(PassengerName? x, PassengerName? y)
}
///
- public int GetHashCode([DisallowNull] PassengerName obj)
- {
- throw new NotImplementedException();
- }
+ public int GetHashCode([DisallowNull] PassengerName obj) => obj.GetHashCode();
}
diff --git a/JMayer.Example.WindowsService/BSM/VersionSupplementaryData.cs b/JMayer.Example.WindowsService/BSM/VersionSupplementaryData.cs
index 3171c56..6359375 100644
--- a/JMayer.Example.WindowsService/BSM/VersionSupplementaryData.cs
+++ b/JMayer.Example.WindowsService/BSM/VersionSupplementaryData.cs
@@ -33,6 +33,11 @@ public class VersionSupplementaryData : ITypeB
///
public const string DotVElement = ".V";
+ ///
+ /// The constant for the minimum character length for the .V element.
+ ///
+ private const int DotvMinimumCharacterLength = 5;
+
///
/// The constant for the local baggage source indicator.
///
@@ -73,12 +78,12 @@ public VersionSupplementaryData(VersionSupplementaryData copy)
public void Parse(string typeBString)
{
//Remove the identifier so the elements can be broken apart with Split().
- typeBString = typeBString.Replace($"{DotVElement}/", string.Empty);
+ typeBString = typeBString.Replace($"{DotVElement}{BSM.ElementSeparator}", string.Empty);
typeBString = typeBString.Replace(Environment.NewLine, string.Empty);
- string[] elements = typeBString.Split('/');
+ string[] elements = typeBString.Split(BSM.ElementSeparator);
- if (elements.Length > 0 && elements[0].Length is 5)
+ if (elements.Length > 0 && elements[0].Length is DotvMinimumCharacterLength)
{
if (int.TryParse(elements[0].AsSpan(0, 1), out int dataDictionaryVersionNumber))
{
@@ -91,5 +96,5 @@ public void Parse(string typeBString)
}
///
- public string ToTypeB() => $"{DotVElement}/{DataDictionaryVersionNumber}{BaggageSourceIndicator}{AirportCode}{Environment.NewLine}";
+ public string ToTypeB() => $"{DotVElement}{BSM.ElementSeparator}{DataDictionaryVersionNumber}{BaggageSourceIndicator}{AirportCode}{Environment.NewLine}";
}
diff --git a/JMayer.Example.WindowsService/BSM/VersionSupplementaryDataEqualityComparer.cs b/JMayer.Example.WindowsService/BSM/VersionSupplementaryDataEqualityComparer.cs
index 0f6c3d5..a1ff10f 100644
--- a/JMayer.Example.WindowsService/BSM/VersionSupplementaryDataEqualityComparer.cs
+++ b/JMayer.Example.WindowsService/BSM/VersionSupplementaryDataEqualityComparer.cs
@@ -10,11 +10,11 @@ public class VersionSupplementaryDataEqualityComparer : IEqualityComparer
public bool Equals(VersionSupplementaryData? x, VersionSupplementaryData? y)
{
- if (x == null && y == null)
+ if (x is null && y is null)
{
return true;
}
- else if (x != null && y != null)
+ else if (x is not null && y is not null)
{
return x.AirportCode == y.AirportCode
&& x.BaggageSourceIndicator == y.BaggageSourceIndicator
@@ -27,8 +27,5 @@ public bool Equals(VersionSupplementaryData? x, VersionSupplementaryData? y)
}
///
- public int GetHashCode([DisallowNull] VersionSupplementaryData obj)
- {
- return obj.GetHashCode();
- }
+ public int GetHashCode([DisallowNull] VersionSupplementaryData obj) => obj.GetHashCode();
}
diff --git a/JMayer.Example.WindowsService/BSMClientWorker.cs b/JMayer.Example.WindowsService/BSMClientWorker.cs
index a670454..65129d2 100644
--- a/JMayer.Example.WindowsService/BSMClientWorker.cs
+++ b/JMayer.Example.WindowsService/BSMClientWorker.cs
@@ -19,6 +19,11 @@ internal class BSMClientWorker : BackgroundService
///
private readonly IClient _client;
+ ///
+ /// The constant for the local host.
+ ///
+ private const string LocalHost = "127.0.0.1";
+
///
/// The dependency injection constructor.
///
@@ -37,13 +42,13 @@ public BSMClientWorker(ILogger logger, IClient client
/// A Task object for the async.
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
- while (!stoppingToken.IsCancellationRequested)
+ while (stoppingToken.IsCancellationRequested is false)
{
- if (!_client.IsConnected)
+ if (_client.IsConnected is false)
{
try
{
- await _client.ConnectAsync("127.0.0.1", BSMServerConnectionWorker.Port, stoppingToken);
+ await _client.ConnectAsync(LocalHost, BSMServerConnectionWorker.Port, stoppingToken);
_logger.LogInformation("The client connected to the BSM server.");
}
catch (Exception ex)
@@ -68,7 +73,7 @@ protected override async Task ExecuteAsync(CancellationToken stoppingToken)
}
}
- await Task.Delay(1000);
+ await Task.Delay(1000, stoppingToken);
}
}
diff --git a/JMayer.Example.WindowsService/BSMServerConnectionWorker.cs b/JMayer.Example.WindowsService/BSMServerConnectionWorker.cs
index dac55d1..da125b9 100644
--- a/JMayer.Example.WindowsService/BSMServerConnectionWorker.cs
+++ b/JMayer.Example.WindowsService/BSMServerConnectionWorker.cs
@@ -46,10 +46,10 @@ public BSMServerConnectionWorker(ILogger logger, ISer
/// A Task object for the async.
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
- while (!stoppingToken.IsCancellationRequested)
+ while (stoppingToken.IsCancellationRequested is false)
{
//Start the server if not ready.
- if (!_server.IsReady)
+ if (_server.IsReady is false)
{
try
{
diff --git a/JMayer.Example.WindowsService/BSMServerOutputWorker.cs b/JMayer.Example.WindowsService/BSMServerOutputWorker.cs
index 7ccadd7..cdf171c 100644
--- a/JMayer.Example.WindowsService/BSMServerOutputWorker.cs
+++ b/JMayer.Example.WindowsService/BSMServerOutputWorker.cs
@@ -43,40 +43,42 @@ public BSMServerOutputWorker(BSMGenerator bsmGenerator, ILoggerA Task object for the async.
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
- while (!stoppingToken.IsCancellationRequested)
+ while (stoppingToken.IsCancellationRequested is false)
{
- if (_server.IsReady && _server.ConnectionCount > 0)
+ if (_server.IsReady is false || _server.ConnectionCount is 0)
{
- //Generate a BSM & sends it to the remote clients.
- try
- {
- BSMPDU pdu = new()
- {
- BSM = _bsmGenerator.Generate(),
- };
- await _server.SendToAllAsync(pdu, stoppingToken);
- _logger.LogInformation("The BSM server sent a BSM to the remote clients. {BSM}", pdu.BSM.ToTypeB());
- }
- catch (Exception ex)
+ await Task.Delay(5_000, stoppingToken);
+ }
+
+ //Generate a BSM & sends it to the remote clients.
+ try
+ {
+ BSMPDU pdu = new()
{
- _logger.LogError(ex, "The BSM server failed to send the BSM to the remote clients.");
- }
+ BSM = _bsmGenerator.Generate(),
+ };
+ await _server.SendToAllAsync(pdu, stoppingToken);
+ _logger.LogInformation("The BSM server sent a BSM to the remote clients. {BSM}", pdu.BSM.ToTypeB());
+ }
+ catch (Exception ex)
+ {
+ _logger.LogError(ex, "The BSM server failed to send the BSM to the remote clients.");
+ }
- //Manage stale remote clients.
- List ids = _server.GetStaleRemoteConnections();
+ //Manage stale remote clients.
+ List ids = _server.GetStaleRemoteConnections();
- if (ids.Count > 0)
- {
- _logger.LogInformation("The BSM server detected stale remote clients; will attempt to disconnect.");
+ if (ids.Count > 0)
+ {
+ _logger.LogInformation("The BSM server detected stale remote clients; will attempt to disconnect.");
- foreach (Guid id in ids)
+ foreach (Guid id in ids)
+ {
+ try
{
- try
- {
- _server.Disconnect(id);
- }
- catch { }
+ _server.Disconnect(id);
}
+ catch { }
}
}
diff --git a/JMayer.Example.WindowsService/JMayer.Example.WindowsService.csproj b/JMayer.Example.WindowsService/JMayer.Example.WindowsService.csproj
index df96f64..8357c30 100644
--- a/JMayer.Example.WindowsService/JMayer.Example.WindowsService.csproj
+++ b/JMayer.Example.WindowsService/JMayer.Example.WindowsService.csproj
@@ -1,16 +1,16 @@
- net8.0
+ net9.0
enable
enable
dotnet-JMayer.Example.WindowsService-4a84891d-50d1-410c-a081-1ab5bc58916f
- 8.0.0
+ 9.0.0
-
-
-
+
+
+
diff --git a/TestProject/TestProject.csproj b/TestProject/TestProject.csproj
index 1fe4216..30c7c89 100644
--- a/TestProject/TestProject.csproj
+++ b/TestProject/TestProject.csproj
@@ -1,13 +1,13 @@
- net8.0
+ net9.0
enable
enable
false
true
- 8.0.0
+ 9.0.0