mirror of
				https://github.com/MindWorkAI/AI-Studio.git
				synced 2025-11-04 13:00:20 +00:00 
			
		
		
		
	Co-authored-by: krut_ni <nils.kruthoff@dlr.de> Co-authored-by: Thorsten Sommer <mail@tsommer.org>
		
			
				
	
	
		
			32 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using System.Text.Json;
 | 
						|
using System.Text.Json.Serialization;
 | 
						|
 | 
						|
namespace AIStudio.Tools;
 | 
						|
 | 
						|
public sealed class ContentStreamMetadataJsonConverter : JsonConverter<ContentStreamSseMetadata>
 | 
						|
{
 | 
						|
    public override ContentStreamSseMetadata? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
 | 
						|
    {
 | 
						|
        using var jsonDoc = JsonDocument.ParseValue(ref reader);
 | 
						|
        var root = jsonDoc.RootElement;
 | 
						|
        var rawText = root.GetRawText();
 | 
						|
        
 | 
						|
        var propertyName = root.EnumerateObject()
 | 
						|
            .Select(p => p.Name)
 | 
						|
            .FirstOrDefault();
 | 
						|
 | 
						|
        return propertyName switch
 | 
						|
        {
 | 
						|
            "Text" => JsonSerializer.Deserialize<ContentStreamTextMetadata?>(rawText, options),
 | 
						|
            "Pdf" => JsonSerializer.Deserialize<ContentStreamPdfMetadata?>(rawText, options),
 | 
						|
            "Spreadsheet" => JsonSerializer.Deserialize<ContentStreamSpreadsheetMetadata?>(rawText, options),
 | 
						|
            "Presentation" => JsonSerializer.Deserialize<ContentStreamPresentationMetadata?>(rawText, options),
 | 
						|
            "Image" => JsonSerializer.Deserialize<ContentStreamImageMetadata?>(rawText, options),
 | 
						|
            "Document" => JsonSerializer.Deserialize<ContentStreamDocumentMetadata?>(rawText, options),
 | 
						|
            
 | 
						|
            _ => null
 | 
						|
        };
 | 
						|
    }
 | 
						|
 | 
						|
    public override void Write(Utf8JsonWriter writer, ContentStreamSseMetadata value, JsonSerializerOptions options) => JsonSerializer.Serialize(writer, value, value.GetType(), options);
 | 
						|
} |