private async Task ProcessMessage(EventStoreEvent eventStoreEvent) { switch (eventStoreEvent.EventType) { case OccuredEventType.EventoCreated: JsonSerializer serializer = new JsonSerializer(); Event @event = JsonConvert.DeserializeObject <Event>(eventStoreEvent.Data); if (@event != null) { await this.repo.InsertAsync(@event); /*foreach (Participant participant in @event.Participants) * { * @event.User = participant.UserId; * await this.repo.InsertAsync(@event); * }*/ } break; case OccuredEventType.EventoDeleted: await this.repo.DeleteAsync(eventStoreEvent.EventId); break; case OccuredEventType.EventoEnded: await this.repo.EndEventAsync(eventStoreEvent.EventId); break; case OccuredEventType.EventoExtended: await this.repo.ExtendEventAsync(eventStoreEvent.EventId, JsonConvert.DeserializeObject <DateTime>(eventStoreEvent.Data)); break; case OccuredEventType.ParticipantLeft: await this.repo.DeleteAsync(eventStoreEvent.EventId); break; case OccuredEventType.ParticipantsListUpdated: await this.repo.DeleteAsync(eventStoreEvent.EventId); break; case OccuredEventType.ParticipantStateUpdated: await this.repo.UpdateParticipantStateAsync(eventStoreEvent.EventId, JsonConvert.DeserializeObject <Guid>(eventStoreEvent.Data), 0); break; default: break; } }
private void _SourceEvent(EventStoreEvent @event) { switch (@event) { case ReservationCreatedEvent createdEvent: _Created(createdEvent); break; case ReservationCheckedInEvent checkedInEvent: _CheckedIn(checkedInEvent); break; } }
private void HandleEvent(IEvent @event) { IEvent e = @event; EventStoreEvent ese = new EventStoreEvent(); ese.AggregateId = _game.Id; ese.Id = Guid.NewGuid().ToString(); ese.DomainEventName = e.GetType().Name; ese.DomainEvent = e; ese.Time = DateTime.UtcNow; ese.Sequence = _sequence++; ese.EventContainer = JsonConvert.SerializeObject(e); uncommitedEvents.Add(ese); }
public static void Run([EventStoreTrigger] EventStoreEvent events, ILogger log) { log.LogInformation(events.ResolvedEvent.OriginalEvent.EventType); }
private void _AddEvent(EventStoreEvent @event) { _SourceEvent(@event); Events.Add(@event); }
public IEvent GetDomainEventForEventStoreEvent(EventStoreEvent e) { Type domainEventType = Game.DomainEventTypes.First(t => t.Name == e.DomainEventName); return((IEvent)JsonConvert.DeserializeObject(e.EventContainer, domainEventType)); }