From 5c8a7f194f07bb2a2f50c5d096dccdf5f1690a92 Mon Sep 17 00:00:00 2001 From: "t.miura" Date: Fri, 24 Jan 2025 15:36:24 +0900 Subject: [PATCH] clean up code smells --- .../Databases/DbEventQuery.cs | 55 ++++++++++--------- .../SekibanIndexedDbOption.cs | 6 -- 2 files changed, 28 insertions(+), 33 deletions(-) diff --git a/src/Sekiban.Infrastructure.IndexedDb/Databases/DbEventQuery.cs b/src/Sekiban.Infrastructure.IndexedDb/Databases/DbEventQuery.cs index 1c77ee2e..45c4d517 100644 --- a/src/Sekiban.Infrastructure.IndexedDb/Databases/DbEventQuery.cs +++ b/src/Sekiban.Infrastructure.IndexedDb/Databases/DbEventQuery.cs @@ -5,31 +5,39 @@ namespace Sekiban.Infrastructure.IndexedDb.Databases; public record DbEventQuery { - public string? RootPartitionKey { get; init; } - public string? PartitionKey { get; init; } - public string[]? AggregateTypes { get; init; } - public string? SortableIdStart { get; init; } - public string? SortableIdEnd { get; init; } + public string? RootPartitionKey { get; private set; } + public string? PartitionKey { get; private set; } + public string[]? AggregateTypes { get; private set; } + public string? SortableIdStart { get; private set; } + public string? SortableIdEnd { get; private set; } - public int? MaxCount { get; init; } + public int? MaxCount { get; private set; } public static DbEventQuery FromEventRetrievalInfo(EventRetrievalInfo eventRetrievalInfo) { - var query = eventRetrievalInfo.GetIsPartition() ? - new DbEventQuery + var query = new DbEventQuery(); + + if (eventRetrievalInfo.GetIsPartition()) + { + query.PartitionKey = eventRetrievalInfo.GetPartitionKey().UnwrapBox(); + } + else + { + if (eventRetrievalInfo.HasRootPartitionKey()) { - PartitionKey = eventRetrievalInfo.GetPartitionKey().UnwrapBox(), - } : - new DbEventQuery + query.RootPartitionKey = eventRetrievalInfo.RootPartitionKey.GetValue(); + } + + if (eventRetrievalInfo.HasAggregateStream()) { - RootPartitionKey = eventRetrievalInfo.HasRootPartitionKey() ? eventRetrievalInfo.RootPartitionKey.GetValue() : null, - AggregateTypes = eventRetrievalInfo.HasAggregateStream() ? eventRetrievalInfo.AggregateStream.GetValue().GetStreamNames().ToArray() : null, - }; + query.AggregateTypes = eventRetrievalInfo.AggregateStream.GetValue().GetStreamNames().ToArray(); + } + } - query = query with + if (eventRetrievalInfo.MaxCount.HasValue) { - MaxCount = eventRetrievalInfo.MaxCount.HasValue ? eventRetrievalInfo.MaxCount.GetValue() : null, - }; + query.MaxCount = eventRetrievalInfo.MaxCount.GetValue(); + } switch (eventRetrievalInfo.SortableIdCondition) { @@ -37,21 +45,14 @@ public static DbEventQuery FromEventRetrievalInfo(EventRetrievalInfo eventRetrie break; case SinceSortableIdCondition since: - query = query with - { - SortableIdStart = since.SortableUniqueId, - }; + query.SortableIdStart = since.SortableUniqueId; break; case BetweenSortableIdCondition between: - query = query with - { - SortableIdStart = between.Start, - SortableIdEnd = between.End, - }; + query.SortableIdStart = between.Start; + query.SortableIdEnd = between.End; break; - default: throw new NotImplementedException("unknown ISortableIdCondition"); } diff --git a/src/Sekiban.Infrastructure.IndexedDb/SekibanIndexedDbOption.cs b/src/Sekiban.Infrastructure.IndexedDb/SekibanIndexedDbOption.cs index 8fd294ee..14282dcf 100644 --- a/src/Sekiban.Infrastructure.IndexedDb/SekibanIndexedDbOption.cs +++ b/src/Sekiban.Infrastructure.IndexedDb/SekibanIndexedDbOption.cs @@ -7,12 +7,6 @@ public class SekibanIndexedDbOption { public const string DatabaseNameDefaultValue = "sekiban"; - // public const string EventsStoreName = "events"; - // public const string EventsStoreDissolvableName = "dissolvable-events"; - // public const string CommandStoreName = "commands"; - // public const string SingleProjectionSnapshotStoreName = "single-projection-snapshots"; - // public const string MultiProjectionSnapshotStoreName = "multi-projection-snapshots"; - public string Context { get; init; } = SekibanContext.Default; public string DatabaseName { get; init; } = DatabaseNameDefaultValue;