diff --git a/src/primitives-linq/Primitives.Linq/Primitives.Linq.csproj b/src/primitives-linq/Primitives.Linq/Primitives.Linq.csproj
index 6f233c1..4754c78 100644
--- a/src/primitives-linq/Primitives.Linq/Primitives.Linq.csproj
+++ b/src/primitives-linq/Primitives.Linq/Primitives.Linq.csproj
@@ -17,7 +17,7 @@
PrimeFuncPack Primitives.Linq is a core library for .NET consisting of useful extensions making work with Linq easier.
System
PrimeFuncPack.Primitives.Linq
- 2.0.0-rc.1.0.1
+ 2.0.0-rc.1.0.2
diff --git a/src/primitives-pipeline/Primitives.Pipeline/Primitives.Pipeline.csproj b/src/primitives-pipeline/Primitives.Pipeline/Primitives.Pipeline.csproj
index 13b1367..9ad8798 100644
--- a/src/primitives-pipeline/Primitives.Pipeline/Primitives.Pipeline.csproj
+++ b/src/primitives-pipeline/Primitives.Pipeline/Primitives.Pipeline.csproj
@@ -17,7 +17,7 @@
PrimeFuncPack Primitives.Pipeline is a core library for .NET consisting of useful extensions making work with functional pipelines easier.
System
PrimeFuncPack.Primitives.Pipeline
- 2.0.0-rc.1.0.1
+ 2.0.0-rc.1.0.2
diff --git a/src/primitives-predicates/Primitives.Predicates/Primitives.Predicates.csproj b/src/primitives-predicates/Primitives.Predicates/Primitives.Predicates.csproj
index 022f6a3..5137ea0 100644
--- a/src/primitives-predicates/Primitives.Predicates/Primitives.Predicates.csproj
+++ b/src/primitives-predicates/Primitives.Predicates/Primitives.Predicates.csproj
@@ -17,7 +17,7 @@
PrimeFuncPack Primitives.Predicates is a core library for .NET consisting of useful extensions and predicates making work with the nullable feature easier.
System
PrimeFuncPack.Primitives.Predicates
- 2.0.0-rc.1.0.1
+ 2.0.0-rc.1.0.2
diff --git a/src/primitives-strings/Primitives.Strings.Tests/StringExtensions.Tests/ToStringOrEmpty_Obsolete.cs b/src/primitives-strings/Primitives.Strings.Tests/StringExtensions.Tests/ToStringOrEmpty_Obsolete.cs
new file mode 100644
index 0000000..9529d14
--- /dev/null
+++ b/src/primitives-strings/Primitives.Strings.Tests/StringExtensions.Tests/ToStringOrEmpty_Obsolete.cs
@@ -0,0 +1,35 @@
+using NUnit.Framework;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Reflection;
+
+namespace PrimeFuncPack.Primitives.Tests;
+
+partial class StringExtensionsTests
+{
+ [Test]
+ public void ToStringOrEmpty_ExpectIsObsoleteWithError()
+ {
+ const string expectedObsoleteMessage = "This method is obsolete. Consider to call obj?.ToString().OrEmpty() instead.";
+
+ IReadOnlyCollection methods = typeof(StringExtensions)
+ .GetMethods(BindingFlags.Public | BindingFlags.Static)
+ .Where(method => method.Name == nameof(StringExtensions.ToStringOrEmpty))
+ .ToArray();
+
+ Assert.AreEqual(2, methods.Count);
+
+ Assert.IsTrue(
+ methods.All(
+ method => method.CustomAttributes.Any(
+ attr
+ =>
+ attr.AttributeType == typeof(ObsoleteAttribute) &&
+ attr.ConstructorArguments.Count == 2 &&
+ attr.ConstructorArguments[0].ArgumentType == typeof(string) &&
+ attr.ConstructorArguments[0].Value is expectedObsoleteMessage &&
+ attr.ConstructorArguments[1].ArgumentType == typeof(bool) &&
+ attr.ConstructorArguments[1].Value is true)));
+ }
+}
diff --git a/src/primitives-strings/Primitives.Strings.Tests/StringExtensions.Tests/ToStringOrEmpty_Ref.cs b/src/primitives-strings/Primitives.Strings.Tests/StringExtensions.Tests/ToStringOrEmpty_Ref.cs
index a5bc877..e9f1add 100644
--- a/src/primitives-strings/Primitives.Strings.Tests/StringExtensions.Tests/ToStringOrEmpty_Ref.cs
+++ b/src/primitives-strings/Primitives.Strings.Tests/StringExtensions.Tests/ToStringOrEmpty_Ref.cs
@@ -6,6 +6,7 @@ namespace PrimeFuncPack.Primitives.Tests;
partial class StringExtensionsTests
{
+ [Obsolete]
[Test]
public void ToStringOrEmpty_Ref_SourceIsNull_ExpectEmpty()
{
@@ -15,6 +16,7 @@ public void ToStringOrEmpty_Ref_SourceIsNull_ExpectEmpty()
Assert.IsEmpty(actual);
}
+ [Obsolete]
[Test]
public void ToStringOrEmpty_Ref_SourceToStringIsNull_ExpectEmpty()
{
@@ -24,6 +26,7 @@ public void ToStringOrEmpty_Ref_SourceToStringIsNull_ExpectEmpty()
Assert.IsEmpty(actual);
}
+ [Obsolete]
[Test]
[TestCase(EmptyString)]
[TestCase(WhiteSpaceString)]
diff --git a/src/primitives-strings/Primitives.Strings.Tests/StringExtensions.Tests/ToStringOrEmpty_StructNullable.cs b/src/primitives-strings/Primitives.Strings.Tests/StringExtensions.Tests/ToStringOrEmpty_StructNullable.cs
index 2cc26d7..26cd032 100644
--- a/src/primitives-strings/Primitives.Strings.Tests/StringExtensions.Tests/ToStringOrEmpty_StructNullable.cs
+++ b/src/primitives-strings/Primitives.Strings.Tests/StringExtensions.Tests/ToStringOrEmpty_StructNullable.cs
@@ -6,6 +6,7 @@ namespace PrimeFuncPack.Primitives.Tests;
partial class StringExtensionsTests
{
+ [Obsolete]
[Test]
public void ToStringOrEmpty_StructNullable_SourceIsNull_ExpectEmpty()
{
@@ -15,6 +16,7 @@ public void ToStringOrEmpty_StructNullable_SourceIsNull_ExpectEmpty()
Assert.IsEmpty(actual);
}
+ [Obsolete]
[Test]
public void ToStringOrEmpty_StructNullable_SourceToStringIsNull_ExpectEmpty()
{
@@ -24,6 +26,7 @@ public void ToStringOrEmpty_StructNullable_SourceToStringIsNull_ExpectEmpty()
Assert.IsEmpty(actual);
}
+ [Obsolete]
[Test]
[TestCase(EmptyString)]
[TestCase(WhiteSpaceString)]
diff --git a/src/primitives-strings/Primitives.Strings.Tests/Strings.Tests/ToStringOrEmpty_Obsolete.cs b/src/primitives-strings/Primitives.Strings.Tests/Strings.Tests/ToStringOrEmpty_Obsolete.cs
new file mode 100644
index 0000000..b46650d
--- /dev/null
+++ b/src/primitives-strings/Primitives.Strings.Tests/Strings.Tests/ToStringOrEmpty_Obsolete.cs
@@ -0,0 +1,35 @@
+using NUnit.Framework;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Reflection;
+
+namespace PrimeFuncPack.Primitives.Tests;
+
+partial class StringsTests
+{
+ [Test]
+ public void ToStringOrEmpty_ExpectIsObsoleteWithError()
+ {
+ const string expectedObsoleteMessage = "This method is obsolete. Consider to call obj?.ToString().OrEmpty() instead.";
+
+ IReadOnlyCollection methods = typeof(Strings)
+ .GetMethods(BindingFlags.Public | BindingFlags.Static)
+ .Where(method => method.Name == nameof(Strings.ToStringOrEmpty))
+ .ToArray();
+
+ Assert.AreEqual(2, methods.Count);
+
+ Assert.IsTrue(
+ methods.All(
+ method => method.CustomAttributes.Any(
+ attr
+ =>
+ attr.AttributeType == typeof(ObsoleteAttribute) &&
+ attr.ConstructorArguments.Count == 2 &&
+ attr.ConstructorArguments[0].ArgumentType == typeof(string) &&
+ attr.ConstructorArguments[0].Value is expectedObsoleteMessage &&
+ attr.ConstructorArguments[1].ArgumentType == typeof(bool) &&
+ attr.ConstructorArguments[1].Value is true)));
+ }
+}
diff --git a/src/primitives-strings/Primitives.Strings.Tests/Strings.Tests/ToStringOrEmpty_Ref.cs b/src/primitives-strings/Primitives.Strings.Tests/Strings.Tests/ToStringOrEmpty_Ref.cs
index b1ce47f..1382e10 100644
--- a/src/primitives-strings/Primitives.Strings.Tests/Strings.Tests/ToStringOrEmpty_Ref.cs
+++ b/src/primitives-strings/Primitives.Strings.Tests/Strings.Tests/ToStringOrEmpty_Ref.cs
@@ -6,6 +6,7 @@ namespace PrimeFuncPack.Primitives.Tests;
partial class StringsTests
{
+ [Obsolete]
[Test]
public void ToStringOrEmpty_Ref_SourceIsNull_ExpectEmpty()
{
@@ -15,6 +16,7 @@ public void ToStringOrEmpty_Ref_SourceIsNull_ExpectEmpty()
Assert.IsEmpty(actual);
}
+ [Obsolete]
[Test]
public void ToStringOrEmpty_Ref_SourceToStringIsNull_ExpectEmpty()
{
@@ -24,6 +26,7 @@ public void ToStringOrEmpty_Ref_SourceToStringIsNull_ExpectEmpty()
Assert.IsEmpty(actual);
}
+ [Obsolete]
[Test]
[TestCase(EmptyString)]
[TestCase(WhiteSpaceString)]
diff --git a/src/primitives-strings/Primitives.Strings.Tests/Strings.Tests/ToStringOrEmpty_StructNullable.cs b/src/primitives-strings/Primitives.Strings.Tests/Strings.Tests/ToStringOrEmpty_StructNullable.cs
index 0d10402..be569cf 100644
--- a/src/primitives-strings/Primitives.Strings.Tests/Strings.Tests/ToStringOrEmpty_StructNullable.cs
+++ b/src/primitives-strings/Primitives.Strings.Tests/Strings.Tests/ToStringOrEmpty_StructNullable.cs
@@ -6,6 +6,7 @@ namespace PrimeFuncPack.Primitives.Tests;
partial class StringsTests
{
+ [Obsolete]
[Test]
public void ToStringOrEmpty_StructNullable_SourceIsNull_ExpectEmpty()
{
@@ -15,6 +16,7 @@ public void ToStringOrEmpty_StructNullable_SourceIsNull_ExpectEmpty()
Assert.IsEmpty(actual);
}
+ [Obsolete]
[Test]
public void ToStringOrEmpty_StructNullable_SourceToStringIsNull_ExpectEmpty()
{
@@ -24,6 +26,7 @@ public void ToStringOrEmpty_StructNullable_SourceToStringIsNull_ExpectEmpty()
Assert.IsEmpty(actual);
}
+ [Obsolete]
[Test]
[TestCase(EmptyString)]
[TestCase(WhiteSpaceString)]
diff --git a/src/primitives-strings/Primitives.Strings/InternalObsolete/InternalObsoleteErrors.cs b/src/primitives-strings/Primitives.Strings/InternalObsolete/InternalObsoleteErrors.cs
new file mode 100644
index 0000000..2154fe5
--- /dev/null
+++ b/src/primitives-strings/Primitives.Strings/InternalObsolete/InternalObsoleteErrors.cs
@@ -0,0 +1,6 @@
+namespace System;
+
+internal static class InternalObsoleteErrors
+{
+ public const bool ToStringOrEmpty = true;
+}
diff --git a/src/primitives-strings/Primitives.Strings/InternalObsolete/InternalObsoleteMessages.cs b/src/primitives-strings/Primitives.Strings/InternalObsolete/InternalObsoleteMessages.cs
new file mode 100644
index 0000000..09c26a5
--- /dev/null
+++ b/src/primitives-strings/Primitives.Strings/InternalObsolete/InternalObsoleteMessages.cs
@@ -0,0 +1,6 @@
+namespace System;
+
+internal static class InternalObsoleteMessages
+{
+ public const string ToStringOrEmpty = "This method is obsolete. Consider to call obj?.ToString().OrEmpty() instead.";
+}
diff --git a/src/primitives-strings/Primitives.Strings/Primitives.Strings.csproj b/src/primitives-strings/Primitives.Strings/Primitives.Strings.csproj
index a036b72..21bf34f 100644
--- a/src/primitives-strings/Primitives.Strings/Primitives.Strings.csproj
+++ b/src/primitives-strings/Primitives.Strings/Primitives.Strings.csproj
@@ -17,7 +17,7 @@
PrimeFuncPack Primitives.Strings is a core library for .NET consisting of useful extensions making work with strings easier.
System
PrimeFuncPack.Primitives.Strings
- 2.0.0-rc.1.0.1
+ 2.0.0-rc.2.0.0
diff --git a/src/primitives-strings/Primitives.Strings/StringExtensions.cs b/src/primitives-strings/Primitives.Strings/StringExtensions.cs
index 46ad447..33bfa0f 100644
--- a/src/primitives-strings/Primitives.Strings/StringExtensions.cs
+++ b/src/primitives-strings/Primitives.Strings/StringExtensions.cs
@@ -19,11 +19,15 @@ public static string OrEmpty(this string? value)
=>
Strings.OrNullIfWhiteSpace(value);
+ // TODO: Consider to delete the method in v3.0
+ [Obsolete(InternalObsoleteMessages.ToStringOrEmpty, error: InternalObsoleteErrors.ToStringOrEmpty)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static string ToStringOrEmpty(this T? value)
=>
Strings.ToStringOrEmpty(value);
+ // TODO: Consider to delete the method in v3.0
+ [Obsolete(InternalObsoleteMessages.ToStringOrEmpty, error: InternalObsoleteErrors.ToStringOrEmpty)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static string ToStringOrEmpty(this T? value) where T : struct
=>
diff --git a/src/primitives-strings/Primitives.Strings/Strings.cs b/src/primitives-strings/Primitives.Strings/Strings.cs
index b822964..4f40fbe 100644
--- a/src/primitives-strings/Primitives.Strings/Strings.cs
+++ b/src/primitives-strings/Primitives.Strings/Strings.cs
@@ -28,11 +28,15 @@ public static string OrEmpty(string? value)
? null
: value;
+ // TODO: Consider to delete the method in v3.0
+ [Obsolete(InternalObsoleteMessages.ToStringOrEmpty, error: InternalObsoleteErrors.ToStringOrEmpty)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static string ToStringOrEmpty(T? value)
=>
value?.ToString() ?? Empty;
+ // TODO: Consider to delete the method in v3.0
+ [Obsolete(InternalObsoleteMessages.ToStringOrEmpty, error: InternalObsoleteErrors.ToStringOrEmpty)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static string ToStringOrEmpty(T? value) where T : struct
=>
diff --git a/src/primitives/Primitives/Primitives.csproj b/src/primitives/Primitives/Primitives.csproj
index 192fae2..e6c12b7 100644
--- a/src/primitives/Primitives/Primitives.csproj
+++ b/src/primitives/Primitives/Primitives.csproj
@@ -17,7 +17,7 @@
PrimeFuncPack Primitives is a core library for .NET consisting of useful extensions and predicates making work with functional pipelines, Linq, strings, the nullable feature, etc. easier.
System
PrimeFuncPack.Primitives
- 2.0.0-rc.1.0.1
+ 2.0.0-rc.2.0.0
@@ -32,10 +32,10 @@
-
-
-
-
+
+
+
+