diff --git a/src/filter-value/Filter.Value.Test/Filter.Value.Test.csproj b/src/filter-value/Filter.Value.Test/Filter.Value.Test.csproj
index 202c591..07ee40f 100644
--- a/src/filter-value/Filter.Value.Test/Filter.Value.Test.csproj
+++ b/src/filter-value/Filter.Value.Test/Filter.Value.Test.csproj
@@ -2,11 +2,12 @@
net6.0;net7.0
+ true
+ false
disable
enable
true
true
- false
GarageGroup.Infra.Dataverse.Api.Filter.Value.Test
GarageGroup.Infra.Dataverse.Api.Filter.Value.Test
@@ -16,7 +17,7 @@
-
+
diff --git a/src/filter-value/Filter.Value.Test/Test.DataverseFilterValue/Test.FromInt32.Nullable.cs b/src/filter-value/Filter.Value.Test/Test.DataverseFilterValue/Test.FromInt32.Nullable.cs
new file mode 100644
index 0000000..e324031
--- /dev/null
+++ b/src/filter-value/Filter.Value.Test/Test.DataverseFilterValue/Test.FromInt32.Nullable.cs
@@ -0,0 +1,49 @@
+using PrimeFuncPack.UnitTest;
+using Xunit;
+
+namespace GarageGroup.Infra.Dataverse.Api.Filter.Value.Test;
+
+partial class DataverseFilterValueTest
+{
+ [Theory]
+ [InlineData(null, "null")]
+ [InlineData(TestData.Zero, "0")]
+ [InlineData(TestData.MinusFifteen, "-15")]
+ [InlineData(TestData.PlusFifteen, "15")]
+ public static void FromNullableInt32Constructor_ExpectActualValueIsEqualToExpectedValue(
+ int? sourceValue, string expectedValue)
+ {
+ var actual = new DataverseFilterValue(sourceValue);
+ var actualValue = actual.Value;
+
+ Assert.Equal(expectedValue, actualValue);
+ }
+
+ [Theory]
+ [InlineData(null, "null")]
+ [InlineData(TestData.Zero, "0")]
+ [InlineData(TestData.MinusOne, "-1")]
+ [InlineData(TestData.PlusFifteen, "15")]
+ public static void FromNullableInt32_ExpectActualValueIsEqualToExpectedValue(
+ int? sourceValue, string expectedValue)
+ {
+ var actual = DataverseFilterValue.FromNullableInt32(sourceValue);
+ var actualValue = actual.Value;
+
+ Assert.Equal(expectedValue, actualValue);
+ }
+
+ [Theory]
+ [InlineData(null, "null")]
+ [InlineData(TestData.Zero, "0")]
+ [InlineData(TestData.MinusFifteen, "-15")]
+ [InlineData(TestData.One, "1")]
+ public static void FromNullableInt32Implicit_ExpectActualValueIsEqualToExpectedValue(
+ int? sourceValue, string expectedValue)
+ {
+ DataverseFilterValue actual = sourceValue;
+ var actualValue = actual.Value;
+
+ Assert.Equal(expectedValue, actualValue);
+ }
+}
\ No newline at end of file
diff --git a/src/filter-value/Filter.Value.Test/Test.DataverseFilterValue/Test.FromInt32.cs b/src/filter-value/Filter.Value.Test/Test.DataverseFilterValue/Test.FromInt32.cs
new file mode 100644
index 0000000..961664e
--- /dev/null
+++ b/src/filter-value/Filter.Value.Test/Test.DataverseFilterValue/Test.FromInt32.cs
@@ -0,0 +1,46 @@
+using PrimeFuncPack.UnitTest;
+using Xunit;
+
+namespace GarageGroup.Infra.Dataverse.Api.Filter.Value.Test;
+
+partial class DataverseFilterValueTest
+{
+ [Theory]
+ [InlineData(TestData.Zero, "0")]
+ [InlineData(TestData.MinusOne, "-1")]
+ [InlineData(TestData.PlusFifteen, "15")]
+ public static void FromInt32Constructor_ExpectActualValueIsEqualToExpectedValue(
+ int sourceValue, string expectedValue)
+ {
+ var actual = new DataverseFilterValue(sourceValue);
+ var actualValue = actual.Value;
+
+ Assert.Equal(expectedValue, actualValue);
+ }
+
+ [Theory]
+ [InlineData(TestData.Zero, "0")]
+ [InlineData(TestData.MinusFifteen, "-15")]
+ [InlineData(TestData.One, "1")]
+ public static void FromInt32_ExpectActualValueIsEqualToExpectedValue(
+ int sourceValue, string expectedValue)
+ {
+ var actual = DataverseFilterValue.FromInt32(sourceValue);
+ var actualValue = actual.Value;
+
+ Assert.Equal(expectedValue, actualValue);
+ }
+
+ [Theory]
+ [InlineData(TestData.Zero, "0")]
+ [InlineData(TestData.MinusFifteen, "-15")]
+ [InlineData(TestData.PlusFifteen, "15")]
+ public static void FromInt32Implicit_ExpectActualValueIsEqualToExpectedValue(
+ int sourceValue, string expectedValue)
+ {
+ DataverseFilterValue actual = sourceValue;
+ var actualValue = actual.Value;
+
+ Assert.Equal(expectedValue, actualValue);
+ }
+}
\ No newline at end of file
diff --git a/src/filter-value/Filter.Value/DataverseFilterValue/Value.FromInt32.Nullable.cs b/src/filter-value/Filter.Value/DataverseFilterValue/Value.FromInt32.Nullable.cs
new file mode 100644
index 0000000..0bb7ab1
--- /dev/null
+++ b/src/filter-value/Filter.Value/DataverseFilterValue/Value.FromInt32.Nullable.cs
@@ -0,0 +1,20 @@
+namespace GarageGroup.Infra;
+
+partial class DataverseFilterValue
+{
+ public DataverseFilterValue(int? value)
+ =>
+ Value = InnerBuildValue(value);
+
+ public static DataverseFilterValue FromNullableInt32(int? value)
+ =>
+ new(value);
+
+ public static implicit operator DataverseFilterValue(int? value)
+ =>
+ new(value);
+
+ private static string InnerBuildValue(int? source)
+ =>
+ source is null ? NullValue : InnerBuildValue(source.Value);
+}
\ No newline at end of file
diff --git a/src/filter-value/Filter.Value/DataverseFilterValue/Value.FromInt32.cs b/src/filter-value/Filter.Value/DataverseFilterValue/Value.FromInt32.cs
new file mode 100644
index 0000000..c3af289
--- /dev/null
+++ b/src/filter-value/Filter.Value/DataverseFilterValue/Value.FromInt32.cs
@@ -0,0 +1,20 @@
+namespace GarageGroup.Infra;
+
+partial class DataverseFilterValue
+{
+ public DataverseFilterValue(int value)
+ =>
+ Value = InnerBuildValue(value);
+
+ public static DataverseFilterValue FromInt32(int value)
+ =>
+ new(value);
+
+ public static implicit operator DataverseFilterValue(int value)
+ =>
+ new(value);
+
+ private static string InnerBuildValue(int source)
+ =>
+ source.ToString();
+}
\ No newline at end of file
diff --git a/src/filter-value/Filter.Value/Filter.Value.csproj b/src/filter-value/Filter.Value/Filter.Value.csproj
index 7dd0f09..07703c4 100644
--- a/src/filter-value/Filter.Value/Filter.Value.csproj
+++ b/src/filter-value/Filter.Value/Filter.Value.csproj
@@ -8,7 +8,7 @@
true
GarageGroup.Infra
GarageGroup.Infra.Dataverse.Api.Filter.Value
- 0.0.3
+ 0.1.0
diff --git a/src/filter/Filter.Test/Filter.Test.csproj b/src/filter/Filter.Test/Filter.Test.csproj
index a839d06..2459b09 100644
--- a/src/filter/Filter.Test/Filter.Test.csproj
+++ b/src/filter/Filter.Test/Filter.Test.csproj
@@ -2,11 +2,12 @@
net6.0;net7.0
+ true
+ false
disable
enable
true
true
- false
GarageGroup.Infra.Dataverse.Api.Filter.Test
GarageGroup.Infra.Dataverse.Api.Filter.Test
@@ -16,7 +17,7 @@
-
+
diff --git a/src/filter/Filter/Filter.csproj b/src/filter/Filter/Filter.csproj
index 9e2e65a..b24835a 100644
--- a/src/filter/Filter/Filter.csproj
+++ b/src/filter/Filter/Filter.csproj
@@ -8,12 +8,12 @@
true
GarageGroup.Infra
GarageGroup.Infra.Dataverse.Api.Filter
- 0.0.3
+ 0.1.0-preview.1
-
-
+
+