Beispiel #1
0
        public void DurationSerializer_Should_Serialize()
        {
            var serializer = new DurationSerializer(true);

            foreach (var value in Values)
            {
                Assert.AreEqual(value.Item2, ToHex(serializer.Serialize(4, value.Item1)));
            }
        }
Beispiel #2
0
        public void DurationSerializer_Should_Deserialize()
        {
            var serializer = new DurationSerializer(true);

            foreach (var value in Values)
            {
                var buffer = FromHex(value.Item2);
                Assert.AreEqual(value.Item1, serializer.Deserialize(4, buffer, 0, buffer.Length, null));
            }
        }
Beispiel #3
0
        public static void AddMyMongoDb(this IServiceCollection services, IConfiguration config)
        {
            ActivityContextSerializer.Register();
            ActivitySpanIdSerializer.Register();
            ActivityTraceIdSerializer.Register();
            DurationSerializer.Register();
            InstantSerializer.Register();
            LocalDateSerializer.Register();
            LocalTimeSerializer.Register();

            ConventionRegistry.Register("EnumStringConvention", new ConventionPack
            {
                new EnumRepresentationConvention(BsonType.String)
            }, t => true);

            ConventionRegistry.Register("IgnoreExtraElements", new ConventionPack
            {
                new IgnoreExtraElementsConvention(true)
            }, t => true);

            services.ConfigureAndValidate <MongoDbOptions>(config, "storage:mongoDb");

            services.AddSingletonAs(c =>
            {
                var connectionString = c.GetRequiredService <IOptions <MongoDbOptions> >().Value.ConnectionString;

                return(new MongoClient(connectionString));
            })
            .As <IMongoClient>();

            services.AddSingletonAs(c =>
            {
                var databaseName = c.GetRequiredService <IOptions <MongoDbOptions> >().Value.DatabaseName;

                return(c.GetRequiredService <IMongoClient>().GetDatabase(databaseName));
            })
            .As <IMongoDatabase>();
        }