// ========================================================================== // RefTokenSerializer.cs // Squidex Headless CMS // ========================================================================== // Copyright (c) Squidex Group // All rights reserved. // ========================================================================== using System; using MongoDB.Bson.Serialization; using MongoDB.Bson.Serialization.Serializers; namespace Squidex.Infrastructure.MongoDb { public class RefTokenSerializer : ClassSerializerBase { private static readonly Lazy Registerer = new Lazy(() => { BsonSerializer.RegisterSerializer(new RefTokenSerializer()); return true; }); public static bool Register() { return !Registerer.IsValueCreated && Registerer.Value; } protected override RefToken DeserializeValue(BsonDeserializationContext context, BsonDeserializationArgs args) { var value = context.Reader.ReadString(); return RefToken.Parse(value); } protected override void SerializeValue(BsonSerializationContext context, BsonSerializationArgs args, RefToken value) { context.Writer.WriteString(value.ToString()); } } }