diff --git a/ServiceMonitor/ApplicationDescriptor.cs b/ServiceMonitor/ApplicationDescriptor.cs index 3dec5d0..4b22525 100644 --- a/ServiceMonitor/ApplicationDescriptor.cs +++ b/ServiceMonitor/ApplicationDescriptor.cs @@ -1,6 +1,6 @@ namespace ServiceMonitor; -public sealed class ApplicationDescriptor +public sealed class ApplicationDescriptor : IEquatable { public static readonly ApplicationDescriptor CzechWorker = new ApplicationDescriptor(ApplicationRealm.Czech, ApplicationType.Worker); public static readonly ApplicationDescriptor CzechManager = new ApplicationDescriptor(ApplicationRealm.Czech, ApplicationType.Manager); @@ -58,6 +58,26 @@ public sealed class ApplicationDescriptor public ApplicationType Type { get; } + public bool Equals(ApplicationDescriptor? other) + { + if (other is null) + { + return false; + } + + if (other.Type != Type) + { + return false; + } + + if (other.Realm != Realm) + { + return false; + } + + return true; + } + public override string ToString() { return string.Format("{0}-{1}", Realm.Name.ToLower(), Type.ToString().ToLower()); diff --git a/ServiceMonitor/ApplicationRealm.cs b/ServiceMonitor/ApplicationRealm.cs index 64bbf3e..62cb550 100644 --- a/ServiceMonitor/ApplicationRealm.cs +++ b/ServiceMonitor/ApplicationRealm.cs @@ -1,6 +1,6 @@ namespace ServiceMonitor; -public sealed class ApplicationRealm +public sealed class ApplicationRealm : IEquatable { public static readonly ApplicationRealm Czech = new ApplicationRealm("czech"); @@ -43,6 +43,21 @@ public sealed class ApplicationRealm public string Name { get; } + public bool Equals(ApplicationRealm? other) + { + if (other is null) + { + return false; + } + + if (!string.Equals(other.Name, Name, StringComparison.OrdinalIgnoreCase)) + { + return false; + } + + return true; + } + public override string ToString() { return string.Format("realm = '{0}'", Name);