示例#1
0
        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;
            }
        }
示例#2
0
        private void _SourceEvent(EventStoreEvent @event)
        {
            switch (@event)
            {
            case ReservationCreatedEvent createdEvent:
                _Created(createdEvent);
                break;

            case ReservationCheckedInEvent checkedInEvent:
                _CheckedIn(checkedInEvent);
                break;
            }
        }
示例#3
0
        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);
        }
示例#4
0
 public static void Run([EventStoreTrigger] EventStoreEvent events,
                        ILogger log)
 {
     log.LogInformation(events.ResolvedEvent.OriginalEvent.EventType);
 }
示例#5
0
 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));
        }