Exemple #1
0
                public bool MoveNext()
                {
                    if (_context == null)
                    {
                        _context = new MessageLogDbContext(_sqlQuery._nameOrConnectionString);
                        IQueryable <MessageLogEntity> queryable = _context.Set <MessageLogEntity>().AsQueryable()
                                                                  .Where(x => x.Kind == StandardMetadata.EventKind);
                        Expression <Func <MessageLogEntity, bool> > where = _sqlQuery._criteria.ToExpression();
                        if (where != null)
                        {
                            queryable = queryable.Where(where);
                        }

                        _events = queryable.AsEnumerable()
                                  .Select(x => this._sqlQuery._serializer.Deserialize <IEvent>(x.Payload)).GetEnumerator();
                    }

                    return(_events.MoveNext());
                }
        public void Save(ICommand command)
        {
            using (var context = new MessageLogDbContext(nameOrConnectionString)) {
                var metadata = metadataProvider.GetMetadata(command);

                context.Set <MessageLogEntity>()
                .Add(new MessageLogEntity {
                    Id           = Guid.NewGuid(),
                    SourceId     = command.Id.ToString(),
                    Kind         = metadata.TryGetValue(StandardMetadata.Kind),
                    AssemblyName = metadata.TryGetValue(StandardMetadata.AssemblyName),
                    FullName     = metadata.TryGetValue(StandardMetadata.FullName),
                    Namespace    = metadata.TryGetValue(StandardMetadata.Namespace),
                    TypeName     = metadata.TryGetValue(StandardMetadata.TypeName),
                    SourceType   = metadata.TryGetValue(StandardMetadata.SourceType),
                    CreationDate = DateTime.UtcNow.ToString("o"),
                    Payload      = serializer.Serialize(command)
                });
                context.SaveChanges();
            }
        }
Exemple #3
0
        public void Save(IEvent @event)
        {
            using (var context = new MessageLogDbContext(this._nameOrConnectionString)) {
                IDictionary <string, string> metadata = this._metadataProvider.GetMetadata(@event);

                context.Set <MessageLogEntity>().Add(new MessageLogEntity()
                {
                    Id           = Guid.NewGuid(),
                    SourceId     = @event.SourceId.ToString(),
                    Kind         = metadata.TryGetValue(StandardMetadata.Kind),
                    AssemblyName = metadata.TryGetValue(StandardMetadata.AssemblyName),
                    FullName     = metadata.TryGetValue(StandardMetadata.FullName),
                    Namespace    = metadata.TryGetValue(StandardMetadata.Namespace),
                    TypeName     = metadata.TryGetValue(StandardMetadata.TypeName),
                    SourceType   = metadata.TryGetValue(StandardMetadata.SourceType),
                    CreationDate = DateTime.UtcNow.ToString("o"),
                    Payload      = _serializer.Serialize(@event)
                });

                context.SaveChanges();
            }
        }
Exemple #4
0
                public bool MoveNext()
                {
                    if (context == null)
                    {
                        context = new MessageLogDbContext(sqlQuery.nameOrConnectionString);
                        var queryable = context.Set <MessageLogEntity>().AsQueryable()
                                        .Where(x => x.Kind == StandardMetadata.EventKind);

                        var where = sqlQuery.criteria.ToExpression();
                        if (where != null)
                        {
                            queryable = queryable.Where(where);
                        }

                        events = queryable
                                 .AsEnumerable()
                                 .Select(x => this.sqlQuery.serializer.Deserialize <IEvent>(x.Payload))
                                 .GetEnumerator();
                    }

                    return(events.MoveNext());
                }