网站首页 网站源码
website
站点相关全部源代码,隐藏了一些关于服务器的信息
using System;
using System.Collections.Generic;
using System.Reflection;
using MongoDB.Bson;
using MongoDB.Bson.Serialization;
using MongoDB.Bson.Serialization.Serializers;

namespace Dpz.Core.Infrastructure
{
    public class DateBsonSerializer : SerializerBase<Date>, IBsonDocumentSerializer
    {
        public override void Serialize(BsonSerializationContext context, BsonSerializationArgs args, Date value)
        {
            var utcTime = Date.ToDateTime(value).ToUniversalTime();
            var timestamp = (long)(utcTime - new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc))
                .TotalMilliseconds;
            context.Writer.WriteDateTime(timestamp);
        }

        public override Date Deserialize(BsonDeserializationContext context, BsonDeserializationArgs args)
        {
            var timeString = BsonValueSerializer.Instance.Deserialize(context).ToString() ?? "1970-1-1";
            var value = DateTime.Parse(timeString).ToUniversalTime();
            return Date.ToDate(value);
        }

        public bool TryGetMemberSerializationInfo(string memberName, out BsonSerializationInfo serializationInfo)
        {
            serializationInfo = new BsonSerializationInfo(
                null,
                BsonValueSerializer.Instance,
                typeof(BsonValue));
            return true;
        }
    }
}
loading