From a17874bb7f6994b79b5be973d011d35077d1b3b9 Mon Sep 17 00:00:00 2001 From: Charles d'Avernas Date: Tue, 25 Jun 2024 11:12:40 +0200 Subject: [PATCH] fix(Sdk): Added `Keys` and `Values` properties to the Map class fix(Sdk): Added a new `GetEntry` method, used to get the MapEntry with the specified key Signed-off-by: Charles d'Avernas --- .../ServerlessWorkflow.Sdk.Builders.csproj | 2 +- .../ServerlessWorkflow.Sdk.IO.csproj | 2 +- .../{OrderedMap.cs => Map.cs} | 22 +++++++++++++++++++ .../PublishProfiles/FolderProfile.pubxml | 13 +++++++++++ .../ServerlessWorkflow.Sdk.csproj | 2 +- 5 files changed, 38 insertions(+), 3 deletions(-) rename src/ServerlessWorkflow.Sdk/{OrderedMap.cs => Map.cs} (78%) create mode 100644 src/ServerlessWorkflow.Sdk/Properties/PublishProfiles/FolderProfile.pubxml diff --git a/src/ServerlessWorkflow.Sdk.Builders/ServerlessWorkflow.Sdk.Builders.csproj b/src/ServerlessWorkflow.Sdk.Builders/ServerlessWorkflow.Sdk.Builders.csproj index 443d194..fb63afb 100644 --- a/src/ServerlessWorkflow.Sdk.Builders/ServerlessWorkflow.Sdk.Builders.csproj +++ b/src/ServerlessWorkflow.Sdk.Builders/ServerlessWorkflow.Sdk.Builders.csproj @@ -5,7 +5,7 @@ enable enable 1.0.0 - alpha2.1 + alpha2.2 $(VersionPrefix) $(VersionPrefix) en diff --git a/src/ServerlessWorkflow.Sdk.IO/ServerlessWorkflow.Sdk.IO.csproj b/src/ServerlessWorkflow.Sdk.IO/ServerlessWorkflow.Sdk.IO.csproj index da226d4..0c0bd91 100644 --- a/src/ServerlessWorkflow.Sdk.IO/ServerlessWorkflow.Sdk.IO.csproj +++ b/src/ServerlessWorkflow.Sdk.IO/ServerlessWorkflow.Sdk.IO.csproj @@ -5,7 +5,7 @@ enable enable 1.0.0 - alpha2.1 + alpha2.2 $(VersionPrefix) $(VersionPrefix) en diff --git a/src/ServerlessWorkflow.Sdk/OrderedMap.cs b/src/ServerlessWorkflow.Sdk/Map.cs similarity index 78% rename from src/ServerlessWorkflow.Sdk/OrderedMap.cs rename to src/ServerlessWorkflow.Sdk/Map.cs index 8ac9804..9af90db 100644 --- a/src/ServerlessWorkflow.Sdk/OrderedMap.cs +++ b/src/ServerlessWorkflow.Sdk/Map.cs @@ -27,6 +27,16 @@ public record Map readonly Dictionary _entries = []; + /// + /// Gets an that contains all the map's keys + /// + public IReadOnlyList Keys => [.. this._entries.Keys]; + + /// + /// Gets an that contains all the map's values + /// + public IReadOnlyList Values => [.. this._entries.Values]; + /// public int Count => this._entries.Count; @@ -51,6 +61,18 @@ public TValue this[TKey key] } } + /// + /// Gets the with the specified key + /// + /// The key of the to get + /// The with the specified key + public virtual MapEntry? GetEntry(TKey key) + { + var kvp = this._entries.FirstOrDefault(e => e.Key.Equals(key)); + if (kvp.Key.Equals(default(TKey))) return null; + else return new(kvp.Key, kvp.Value); + } + /// public virtual void Add(MapEntry item) => this._entries[item.Key] = item.Value; diff --git a/src/ServerlessWorkflow.Sdk/Properties/PublishProfiles/FolderProfile.pubxml b/src/ServerlessWorkflow.Sdk/Properties/PublishProfiles/FolderProfile.pubxml new file mode 100644 index 0000000..df5633a --- /dev/null +++ b/src/ServerlessWorkflow.Sdk/Properties/PublishProfiles/FolderProfile.pubxml @@ -0,0 +1,13 @@ + + + + + Release + Any CPU + bin\Release\net8.0\publish\ + FileSystem + <_TargetId>Folder + + \ No newline at end of file diff --git a/src/ServerlessWorkflow.Sdk/ServerlessWorkflow.Sdk.csproj b/src/ServerlessWorkflow.Sdk/ServerlessWorkflow.Sdk.csproj index d847647..62163d7 100644 --- a/src/ServerlessWorkflow.Sdk/ServerlessWorkflow.Sdk.csproj +++ b/src/ServerlessWorkflow.Sdk/ServerlessWorkflow.Sdk.csproj @@ -5,7 +5,7 @@ enable enable 1.0.0 - alpha2.1 + alpha2.2 $(VersionPrefix) $(VersionPrefix) en