Ejemplo n.º 1
0
 public EfCoreRillStore(
     DbContextOptions <RillDbContext> options,
     IEventContentSerializer?eventSerializer = default,
     IEventContentTypeResolver?typeResolver  = default)
 {
     //https://docs.microsoft.com/en-us/ef/core/dbcontext-configuration/#simple-dbcontext-initialization-with-new
     _options = options;
     _eventContentSerializer   = eventSerializer ?? new JsonEventContentSerializer();
     _eventContentTypeResolver = typeResolver ?? new DefaultEventContentTypeResolver();
 }
Ejemplo n.º 2
0
        internal Event ToEvent(IEventContentTypeResolver eventContentTypeResolver, IEventContentSerializer contentSerializer)
        {
            var ct = new EventContentType(TypeAssemblyName, TypeNamespace, TypeName);
            var t  = eventContentTypeResolver.Resolve(ct);

            return(Event.From(
                       EventId.From(Id),
                       Rill.Sequence.From(Sequence),
                       Rill.Timestamp.From(Timestamp.UtcDateTime),
                       contentSerializer.Deserialize(Content, t)));
        }
Ejemplo n.º 3
0
        internal static RillEventEntity From(RillCommit commit, Event e, IEventContentSerializer contentSerializer)
        {
            var ct = EventContentType.From(e.Content.GetType());

            return(new RillEventEntity(
                       (Guid)e.Id,
                       (Guid)commit.Id,
                       ct.AssemblyName,
                       ct.Namespace,
                       ct.Name,
                       (long)e.Sequence,
                       (DateTime)e.Timestamp,
                       contentSerializer.Serialize(e.Content)));
        }