Esempio n. 1
0
        public IEnumerable <ISourcedEvent> GetAllEventsSinceVersion(Guid id, long version)
        {
            var res = new List <SourcedEvent>();

            _context.WithConnection(connection =>
            {
                using (var cmd = new SQLiteCommand(Query.SelectAllEventsQuery, connection))
                {
                    cmd.AddParam("EventSourceId", id).AddParam("EventSourceVersion", version);

                    using (var reader = cmd.ExecuteReader())
                    {
                        var formatter = new BinaryFormatter();
                        while (reader.Read())
                        {
                            var rawData = (Byte[])reader["Data"];

                            using (var dataStream = new MemoryStream(rawData))
                            {
                                var bag  = (PropertyBag)formatter.Deserialize(dataStream);
                                var evnt = (SourcedEvent)_converter.Convert(bag);
                                res.Add(evnt);
                            }
                        }
                    }
                }
            });

            return(res);
        }
Esempio n. 2
0
        public CommittedEventStream ReadFrom(Guid id, long minVersion, long maxVersion)
        {
            var results = new List <CommittedEvent>();

            _context.WithConnection(connection =>
            {
                using (var cmd = new SQLiteCommand(Query.SelectAllEventsFromQuery, connection))
                {
                    cmd.AddParam("EventSourceId", id)
                    .AddParam("EventSourceMinVersion", minVersion)
                    .AddParam("EventSourceMaxVersion", maxVersion);
                    results.AddRange(ReadEvents(cmd, id));
                }
            });
            return(new CommittedEventStream(id, results));
        }