Moved more code into extension methods

This commit is contained in:
Chomp
2025-07-04 19:29:43 +01:00
parent 7b606fb2a7
commit 01cd251b68
16 changed files with 134 additions and 172 deletions
@@ -0,0 +1,44 @@
using System.Text;
namespace SPTarkov.Server.Core.Extensions
{
public static class StringExtensions
{
public static string Encode(this string value, EncodeType encode)
{
return encode switch
{
EncodeType.BASE64 => Convert.ToBase64String(Encoding.Default.GetBytes(value)),
EncodeType.HEX => Convert.ToHexString(Encoding.Default.GetBytes(value)),
EncodeType.ASCII => Encoding.ASCII.GetString(Encoding.Default.GetBytes(value)),
EncodeType.UTF8 => Encoding.UTF8.GetString(Encoding.Default.GetBytes(value)),
_ => throw new ArgumentOutOfRangeException(nameof(encode), encode, null),
};
}
public static string Decode(this string value, EncodeType encode)
{
switch (encode)
{
case EncodeType.BASE64:
return Encoding.UTF8.GetString(Convert.FromBase64String(value));
case EncodeType.HEX:
return Encoding.UTF8.GetString(Convert.FromHexString(value));
case EncodeType.ASCII:
return Encoding.ASCII.GetString(Encoding.Default.GetBytes(value));
case EncodeType.UTF8:
return Encoding.UTF8.GetString(Encoding.Default.GetBytes(value));
default:
throw new ArgumentOutOfRangeException(nameof(encode), encode, null);
}
}
public enum EncodeType
{
BASE64,
HEX,
ASCII,
UTF8,
}
}
}