Skip to content

Commit 572b664

Browse files
committed
Add string extension methods IfContains and IfNotContains
1 parent 872a4f6 commit 572b664

2 files changed

Lines changed: 50 additions & 0 deletions

File tree

src/DomainCommonExtensions/DataTypeExtensions/StringExtensions.cs

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1682,5 +1682,33 @@ public static string FormatWith(this string source, params object[] args)
16821682

16831683
return string.Format(CultureInfo.CurrentCulture, source, args);
16841684
}
1685+
1686+
/// <summary>
1687+
/// A string extension method that if contains.
1688+
/// </summary>
1689+
/// <param name="source">The input.</param>
1690+
/// <param name="searchValue">The search value.</param>
1691+
/// <param name="resultValue">Default value to return.</param>
1692+
/// <returns>
1693+
/// A string.
1694+
/// </returns>
1695+
public static string IfContains(this string source, string searchValue, string resultValue)
1696+
{
1697+
return source.Contains(searchValue).IsTrue() ? resultValue : source;
1698+
}
1699+
1700+
/// <summary>
1701+
/// A string extension method that if not contains.
1702+
/// </summary>
1703+
/// <param name="source">The input.</param>
1704+
/// <param name="searchValue">The search value.</param>
1705+
/// <param name="resultValue">Default value to return.</param>
1706+
/// <returns>
1707+
/// A string.
1708+
/// </returns>
1709+
public static string IfNotContains(this string source, string searchValue, string resultValue)
1710+
{
1711+
return source.Contains(searchValue).IsFalse() ? resultValue : source;
1712+
}
16851713
}
16861714
}

src/tests/DataTypeTests/DataTests/StringTests.cs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -557,5 +557,27 @@ public void ArrayToString_Test()
557557
Assert.IsNotNull(result);
558558
Assert.AreEqual("ab", result);
559559
}
560+
561+
[DataRow("$FFFFFF", "$", "$FFFFFF")]
562+
[DataRow("FFFFFF", "$", "FFFFFF")]
563+
[TestMethod]
564+
public void IfContains_Test(string source, string checkValue, string exceptedResult)
565+
{
566+
var res = source.IfContains(checkValue, exceptedResult);
567+
568+
Assert.IsNotNull(res);
569+
Assert.AreEqual(exceptedResult, res);
570+
}
571+
572+
[DataRow("$FFFFFF", "$", "$FFFFFF")]
573+
[DataRow("FFFFFF", "$", "$FFFFFF")]
574+
[TestMethod]
575+
public void IfNotContains_Test(string source, string checkValue, string exceptedResult)
576+
{
577+
var res = source.IfNotContains(checkValue, exceptedResult);
578+
579+
Assert.IsNotNull(res);
580+
Assert.AreEqual(exceptedResult, res);
581+
}
560582
}
561583
}

0 commit comments

Comments
 (0)