Beispiel #1
0
        internal static void PlayEvent(DomainEventBase e)
        {
            switch (e)
            {
            case PlayerCreatedEvent playerCreated: ((ICache <Player>)PlayerCache).AddNew(Player.HandleEvent(playerCreated)); break;

            case MarkObtainedEvent markObtained: PlayerCache[markObtained.Guid].HandleEvent(markObtained); break;
            }
        }
Beispiel #2
0
        public void Store(DomainEventBase e)
        {
            // LAST_INSERT_ID() is not thread safe
            MySqlCommand command = new MySqlCommand(
                @"INSERT INTO events(guid, occured, recorded, data)
                VALUES(?guid, ?occured, ?recorded, ?data); SELECT LAST_INSERT_ID();", Connection);

            command.Parameters.AddWithValue("guid", e.Guid);
            command.Parameters.AddWithValue("occured", e.Occured);
            command.Parameters.AddWithValue("recorded", e.Recorded);

            string jsonData = JsonConvert.SerializeObject(e, JsonSettings);

            command.Parameters.AddWithValue("data", jsonData);

            e.SetNumber((ulong)command.ExecuteScalar());
        }
Beispiel #3
0
 public void Replay(DomainEventBase e)
 {
     EventStored?.Invoke(this, new EventStoredArgs(e));
 }
Beispiel #4
0
 public EventStoredArgs(DomainEventBase @event)
 {
     Event = @event;
 }