Пример #1
0
        public async Task Should_load_content_from_created_event()
        {
            var eventData1 = new EventData();
            var eventData2 = new EventData();

            var event1 = new ContentCreated {
                Data = new NamedContentData(), AppId = new NamedId <Guid>(appId, "my-app")
            };
            var event2 = new ContentStatusChanged();

            var events = new List <StoredEvent>
            {
                new StoredEvent("0", 0, eventData1),
                new StoredEvent("1", 1, eventData2)
            };

            A.CallTo(() => eventStore.GetEventsAsync(streamName))
            .Returns(events);

            A.CallTo(() => formatter.Parse(eventData1, true))
            .Returns(new Envelope <IEvent>(event1));
            A.CallTo(() => formatter.Parse(eventData2, true))
            .Returns(new Envelope <IEvent>(event2));

            var data = await sut.LoadAsync(appId, id, 3);

            Assert.Same(event1.Data, data);
        }
        public void Should_calculate_name_for_status_change()
        {
            var @event = new ContentStatusChanged {
                SchemaId = schemaMatch, Change = StatusChange.Change
            };

            Assert.Equal("MySchema1StatusChanged", sut.GetName(@event));
        }
Пример #3
0
        protected void On(ContentStatusChanged @event)
        {
            Status = @event.Status;

            ScheduledAt = null;
            ScheduledBy = null;
            ScheduledTo = null;
        }
 protected Task On(ContentStatusChanged @event, EnvelopeHeaders headers)
 {
     return(ForAppIdAsync(@event.AppId.Id, collection =>
     {
         return collection.UpdateAsync(@event, headers, x =>
         {
             x.Status = @event.Status;
         });
     }));
 }
Пример #5
0
        protected void On(ContentStatusChanged @event)
        {
            ScheduleJob = null;

            Status = @event.Status;

            if (@event.Status == Status.Published)
            {
                Data = DataDraft;
            }
        }
Пример #6
0
        protected void On(ContentStatusChanged @event)
        {
            ScheduleJob = null;

            Status = @event.Status;

            if (@event.Status == Status.Published)
            {
                UpdateData(DataDraft, null, false);
            }
        }
Пример #7
0
        protected void On(ContentStatusChanged @event)
        {
            ScheduleJob = null;

            SimpleMapper.Map(@event, this);

            if (@event.Status == Status.Published)
            {
                UpdateData(DataDraft, null, false);
            }
        }
Пример #8
0
 protected Task On(ContentStatusChanged @event, EnvelopeHeaders headers)
 {
     return(ForAppIdAsync(@event.AppId.Id, collection =>
     {
         return collection.UpdateOneAsync(
             Filter.Eq(x => x.Id, @event.ContentId),
             Update
             .Set(x => x.Status, @event.Status)
             .Set(x => x.LastModified, headers.Timestamp())
             .Set(x => x.LastModifiedBy, @event.Actor)
             .Set(x => x.Version, headers.EventStreamNumber()));
     }));
 }
Пример #9
0
        private async Task UnpublishAsync(ContentStatusChanged @event)
        {
            var state = await textIndexerState.GetAsync(@event.ContentId);

            if (state != null && state.DocIdForPublished != null)
            {
                await IndexAsync(@event,
                                 new UpdateIndexEntry
                {
                    DocId          = state.DocIdForPublished,
                    ServeAll       = true,
                    ServePublished = false
                });

                state.DocIdForPublished = null;

                await textIndexerState.SetAsync(state);
            }
        }
Пример #10
0
        private async Task PublishAsync(ContentStatusChanged @event)
        {
            var state = await textIndexerState.GetAsync(@event.ContentId);

            if (state != null)
            {
                if (state.DocIdNew != null)
                {
                    await IndexAsync(@event,
                                     new UpdateIndexEntry
                    {
                        DocId          = state.DocIdNew,
                        ServeAll       = true,
                        ServePublished = true
                    },
                                     new DeleteIndexEntry
                    {
                        DocId = state.DocIdCurrent
                    });

                    state.DocIdForPublished = state.DocIdNew;
                    state.DocIdCurrent      = state.DocIdNew;
                }
                else
                {
                    await IndexAsync(@event,
                                     new UpdateIndexEntry
                    {
                        DocId          = state.DocIdCurrent,
                        ServeAll       = true,
                        ServePublished = true
                    });

                    state.DocIdForPublished = state.DocIdCurrent;
                }

                state.DocIdNew = null;

                await textIndexerState.SetAsync(state);
            }
        }
Пример #11
0
        void Handle(ContentStatusChanged message)
        {
            var           gameState = Games[message.Content.GameId].State;
            ContentStatus state;

            switch (message.State)
            {
            case ItemState.NotInstalled: {
                gameState.TryRemove(message.Content.Id, out state);
                return;
            }
            }
            if (gameState.TryGetValue(message.Content.Id, out state))
            {
                message.MapTo(state);
            }
            else
            {
                gameState[message.Content.Id] = state = message.MapTo <ContentStatus>();
            }
        }
Пример #12
0
 protected void On(ContentStatusChanged @event)
 {
     status = @event.Status;
 }
Пример #13
0
 public void Handle(ContentStatusChanged notification)
 => _hubContext.Value.Clients.All.ContentStatusChanged(notification.MapTo <ContentStatus>());