2024-04-23 12:09:32 +03:30
|
|
|
|
using System.Web;
|
|
|
|
|
|
|
|
|
|
|
|
namespace Netina.Common.Extensions
|
2023-12-16 20:25:12 +03:30
|
|
|
|
{
|
|
|
|
|
|
public static class StringExtensions
|
|
|
|
|
|
{
|
2024-08-05 23:23:32 +03:30
|
|
|
|
public static bool IsNullOrEmpty(this string value)
|
|
|
|
|
|
=> string.IsNullOrEmpty(value);
|
|
|
|
|
|
|
2024-04-23 12:09:32 +03:30
|
|
|
|
public static string GetSlug(string title)
|
|
|
|
|
|
{
|
|
|
|
|
|
return HttpUtility.UrlEncode(title.Replace(' ', '-'));
|
|
|
|
|
|
}
|
2023-12-16 20:25:12 +03:30
|
|
|
|
public static string ToPriceWhitPriceType(this long price, string priceType)
|
|
|
|
|
|
{
|
|
|
|
|
|
return price.ToString("N0") + " " + priceType;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public static string ToPriceWhitPriceType(this decimal price, string priceType)
|
|
|
|
|
|
{
|
|
|
|
|
|
return price.ToString("N0") + " " + priceType;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public static string ToPriceWhitPriceType(this double price, string priceType)
|
|
|
|
|
|
{
|
|
|
|
|
|
return price.ToString("N0") + " " + priceType;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public static bool HasValue(this string value, bool ignoreWhiteSpace = true)
|
|
|
|
|
|
{
|
|
|
|
|
|
return ignoreWhiteSpace ? !string.IsNullOrWhiteSpace(value) : !string.IsNullOrEmpty(value);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public static int ToInt(this string value)
|
|
|
|
|
|
{
|
|
|
|
|
|
return Convert.ToInt32(value);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public static decimal ToDecimal(this string value)
|
|
|
|
|
|
{
|
|
|
|
|
|
return Convert.ToDecimal(value);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public static string ToNumeric(this int value)
|
|
|
|
|
|
{
|
|
|
|
|
|
return value.ToString("N0"); //"123,456"
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public static string ToNumeric(this decimal value)
|
|
|
|
|
|
{
|
|
|
|
|
|
return value.ToString("N0");
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public static string ToCurrency(this int value)
|
|
|
|
|
|
{
|
|
|
|
|
|
//fa-IR => current culture currency symbol => ریال
|
|
|
|
|
|
//123456 => "123,123ریال"
|
|
|
|
|
|
return value.ToString("C0");
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public static string ToCurrency(this decimal value)
|
|
|
|
|
|
{
|
|
|
|
|
|
return value.ToString("C0");
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public static string En2Fa(this string str)
|
|
|
|
|
|
{
|
|
|
|
|
|
return str.Replace("0", "۰")
|
|
|
|
|
|
.Replace("1", "۱")
|
|
|
|
|
|
.Replace("2", "۲")
|
|
|
|
|
|
.Replace("3", "۳")
|
|
|
|
|
|
.Replace("4", "۴")
|
|
|
|
|
|
.Replace("5", "۵")
|
|
|
|
|
|
.Replace("6", "۶")
|
|
|
|
|
|
.Replace("7", "۷")
|
|
|
|
|
|
.Replace("8", "۸")
|
|
|
|
|
|
.Replace("9", "۹");
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public static string Fa2En(this string str)
|
|
|
|
|
|
{
|
|
|
|
|
|
return str.Replace("۰", "0")
|
|
|
|
|
|
.Replace("۱", "1")
|
|
|
|
|
|
.Replace("۲", "2")
|
|
|
|
|
|
.Replace("۳", "3")
|
|
|
|
|
|
.Replace("۴", "4")
|
|
|
|
|
|
.Replace("۵", "5")
|
|
|
|
|
|
.Replace("۶", "6")
|
|
|
|
|
|
.Replace("۷", "7")
|
|
|
|
|
|
.Replace("۸", "8")
|
|
|
|
|
|
.Replace("۹", "9")
|
|
|
|
|
|
//iphone numeric
|
|
|
|
|
|
.Replace("٠", "0")
|
|
|
|
|
|
.Replace("١", "1")
|
|
|
|
|
|
.Replace("٢", "2")
|
|
|
|
|
|
.Replace("٣", "3")
|
|
|
|
|
|
.Replace("٤", "4")
|
|
|
|
|
|
.Replace("٥", "5")
|
|
|
|
|
|
.Replace("٦", "6")
|
|
|
|
|
|
.Replace("٧", "7")
|
|
|
|
|
|
.Replace("٨", "8")
|
|
|
|
|
|
.Replace("٩", "9");
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public static string FixPersianChars(this string str)
|
|
|
|
|
|
{
|
|
|
|
|
|
return str.Replace("ﮎ", "ک")
|
|
|
|
|
|
.Replace("ﮏ", "ک")
|
|
|
|
|
|
.Replace("ﮐ", "ک")
|
|
|
|
|
|
.Replace("ﮑ", "ک")
|
|
|
|
|
|
.Replace("ك", "ک")
|
|
|
|
|
|
.Replace("ي", "ی")
|
|
|
|
|
|
.Replace(" ", " ")
|
|
|
|
|
|
.Replace("", " ")
|
|
|
|
|
|
.Replace("ھ", "ه"); //.Replace("ئ", "ی");
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public static string CleanString(this string str)
|
|
|
|
|
|
{
|
|
|
|
|
|
return str.Trim().FixPersianChars().Fa2En().NullIfEmpty();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public static string NullIfEmpty(this string str)
|
|
|
|
|
|
{
|
|
|
|
|
|
return str?.Length == 0 ? null : str;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public static string GetId(int length = 8)
|
|
|
|
|
|
{
|
|
|
|
|
|
return Guid.NewGuid().ToString("N").Substring(0, length);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public static string ConvertTo3Digit(this string str)
|
|
|
|
|
|
{
|
|
|
|
|
|
str = string.Concat(str.Split(','));
|
|
|
|
|
|
var array = str.ToCharArray();
|
|
|
|
|
|
Array.Reverse(array);
|
|
|
|
|
|
str = new string(array);
|
|
|
|
|
|
|
|
|
|
|
|
var newStr = "";
|
|
|
|
|
|
for (var i = 0; i < str.Length; i++)
|
|
|
|
|
|
{
|
|
|
|
|
|
newStr += str[i];
|
|
|
|
|
|
if ((i + 1) % 3 == 0)
|
|
|
|
|
|
newStr += ",";
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
var newarray = newStr.ToCharArray();
|
|
|
|
|
|
Array.Reverse(newarray);
|
|
|
|
|
|
newStr = new string(newarray);
|
|
|
|
|
|
if (newStr.Length > 0 && newStr[0] == ',')
|
|
|
|
|
|
newStr = newStr.Substring(1);
|
|
|
|
|
|
|
|
|
|
|
|
return newStr;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public static string ConvertToOrginal(this string str)
|
|
|
|
|
|
{
|
|
|
|
|
|
return string.Concat(str.Split(','));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public static string CheckPhoneNumber(string phoneNumber)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (phoneNumber.Substring(0, 3).Contains("+98"))
|
|
|
|
|
|
phoneNumber = phoneNumber.Replace("+98", "0");
|
|
|
|
|
|
else if (phoneNumber.Substring(0, 2).Contains("98"))
|
|
|
|
|
|
phoneNumber = string.Concat("0", phoneNumber.Substring(2));
|
|
|
|
|
|
else if (phoneNumber[0] != '0')
|
|
|
|
|
|
phoneNumber = string.Concat("0", phoneNumber);
|
|
|
|
|
|
|
|
|
|
|
|
return phoneNumber;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|