System.Collections.Concurrent.ConcurrentBag.Add(Event)

Here are the examples of the csharp api class System.Collections.Concurrent.ConcurrentBag.Add(Event) taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.

2 Examples 7

1. Example

Project: shriek-fx
Source File: SqlEventStorage.cs
public void Save(Event theEvent)
        {
            Func<string, ConcurrentBag<Event>, ConcurrentBag<Event>> func = (x, list) =>
            {
                list.Add(theEvent);
                return list;
            };

            _eventsDict.AddOrUpdate(((dynamic)theEvent).AggregateId.ToString(), new ConcurrentBag<Event> { theEvent }, func);

            var serializedData = JsonConvert.SerializeObject(theEvent);

            var storedEvent = new StoredEvent(
                ((dynamic)theEvent).AggregateId.ToString(),
                serializedData,
                theEvent.Version,
                ""
                );

            eventStoreRepository.Store(storedEvent);
        }

2. Example

Project: shriek-fx
Source File: SqlEventStorage.cs
public IEnumerable<Event> GetEvents<TKey>(TKey aggregateId, int afterVersion = 0) where TKey : IEquatable<TKey>
        {
            return _eventsDict.GetOrAdd(aggregateId.ToString(), x =>
            {
                var storeEvents = eventStoreRepository.GetEvents(aggregateId, afterVersion);
                var eventlist = new ConcurrentBag<Event>();
                foreach (var e in storeEvents)
                {
                    var eventType = Type.GetType(e.MessageType);
                    eventlist.Add(JsonConvert.DeserializeObject(e.Data, eventType) as Event);
                }
                return eventlist;
            })
            .Where(e => e.Version >= afterVersion).OrderBy(e => e.Timestamp);
        }