Skip to content

Commit bb14312

Browse files
committed
Fix bugs
1 parent d6a9427 commit bb14312

1 file changed

Lines changed: 28 additions & 4 deletions

File tree

src/DynamoDBGenerator/Internal/MarshallHelper.cs

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,12 @@ public static AttributeValue FromNullableNumberSet<T>(IEnumerable<T?> numbers, s
5353
where T : struct, INumber<T>
5454
{
5555
if (numbers.TryGetNonEnumeratedCount(out var count) is false)
56-
return new AttributeValue { NS = numbers.Select(x => x.ToString()).ToList() };
56+
return new AttributeValue
57+
{
58+
NS = numbers
59+
.Select(x => x.ToString())
60+
.Where(x => string.IsNullOrEmpty(x) is false).ToList()
61+
};
5762

5863
if (count is 0)
5964
return new AttributeValue { NS = [] };
@@ -68,15 +73,34 @@ public static AttributeValue FromNumberSet<T>(IEnumerable<T> numbers, string? da
6873
where T : struct, INumber<T>
6974
{
7075
if (numbers.TryGetNonEnumeratedCount(out var count) is false)
71-
return new AttributeValue { NS = numbers.Select(x => x.ToString()).ToList() };
76+
{
77+
var noCapacity = new List<string>();
78+
79+
foreach (var number in numbers)
80+
{
81+
var @string = number.ToString();
82+
if (string.IsNullOrEmpty(@string))
83+
throw ExceptionHelper.NotNull($"{dataMember}[UNKNOWN]");
84+
85+
noCapacity.Add(@string);
86+
}
87+
88+
return new AttributeValue { NS = noCapacity };
89+
}
7290

7391
if (count is 0)
7492
return new AttributeValue { NS = [] };
7593

7694
var list = new List<string>(count);
7795

78-
foreach (var @string in numbers)
79-
list.Add(@string.ToString() ?? throw ExceptionHelper.NotNull($"{dataMember}[UNKNOWN]"));
96+
foreach (var number in numbers)
97+
{
98+
var @string = number.ToString();
99+
if (string.IsNullOrEmpty(@string))
100+
throw ExceptionHelper.NotNull($"{dataMember}[UNKNOWN]");
101+
102+
list.Add(@string);
103+
}
80104

81105
return new AttributeValue { NS = list };
82106
}

0 commit comments

Comments
 (0)