mirror of
				https://github.com/lantean-code/qbtmud.git
				synced 2025-11-03 21:43:19 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			36 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using System.Text.Json;
 | 
						|
using System.Text.Json.Serialization;
 | 
						|
 | 
						|
namespace Lantean.QBitTorrentClient.Converters
 | 
						|
{
 | 
						|
    internal class CommaSeparatedJsonConverter : JsonConverter<IReadOnlyList<string>>
 | 
						|
    {
 | 
						|
        public override IReadOnlyList<string>? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
 | 
						|
        {
 | 
						|
            if (reader.TokenType != JsonTokenType.String)
 | 
						|
            {
 | 
						|
                throw new JsonException("Must be of type string.");
 | 
						|
            }
 | 
						|
 | 
						|
            List<string> list;
 | 
						|
            var value = reader.GetString();
 | 
						|
            if (string.IsNullOrEmpty(value))
 | 
						|
            {
 | 
						|
                list = [];
 | 
						|
            }
 | 
						|
            else
 | 
						|
            {
 | 
						|
                list = [.. value.Split(',', StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries)];
 | 
						|
            }
 | 
						|
 | 
						|
            return list.AsReadOnly();
 | 
						|
        }
 | 
						|
 | 
						|
        public override void Write(Utf8JsonWriter writer, IReadOnlyList<string> value, JsonSerializerOptions options)
 | 
						|
        {
 | 
						|
            var output = string.Join(',', value);
 | 
						|
 | 
						|
            writer.WriteStringValue(output);
 | 
						|
        }
 | 
						|
    }
 | 
						|
} |