public async Task Should_enrich_content_with_scheduled_status_color() { var content = new ContentEntity { SchemaId = schemaId, ScheduleJob = ScheduleJob.Build(Status.Archived, user, default) }; A.CallTo(() => workflow.GetInfoAsync(content, content.ScheduleJob.Status)) .Returns(new StatusInfo(Status.Published, StatusColors.Archived)); await sut.EnrichAsync(requestContext, new[] { content }, null !); Assert.Equal(StatusColors.Archived, content.ScheduledStatusColor); }
public override bool ApplyEvent(IEvent @event, EnvelopeHeaders headers) { switch (@event) { case ContentCreated e: { Id = e.ContentId; SimpleMapper.Map(e, this); CurrentVersion = new ContentVersion(e.Status, e.Data); break; } case ContentDraftCreated e: { NewVersion = new ContentVersion(e.Status, e.MigratedData ?? CurrentVersion.Data); ScheduleJob = null; break; } case ContentDraftDeleted _: { NewVersion = null; ScheduleJob = null; break; } case ContentStatusChanged e: { ScheduleJob = null; if (NewVersion != null) { if (e.Status == Status.Published) { CurrentVersion = new ContentVersion(e.Status, NewVersion.Data); NewVersion = null; } else { NewVersion = NewVersion.WithStatus(e.Status); } } else { CurrentVersion = CurrentVersion.WithStatus(e.Status); } break; } case ContentSchedulingCancelled _: { ScheduleJob = null; break; } case ContentStatusScheduled e: { ScheduleJob = ScheduleJob.Build(e.Status, e.Actor, e.DueTime); break; } case ContentUpdated e: { if (NewVersion != null) { NewVersion = NewVersion.WithData(e.Data); } else { CurrentVersion = CurrentVersion.WithData(e.Data); } break; } case ContentDeleted _: { IsDeleted = true; break; } } return(true); }
public void ApplyEvent(IEvent @event) { switch (@event) { case ContentCreated e: { SimpleMapper.Map(e, this); UpdateData(null, e.Data, false); break; } case ContentChangesPublished _: { ScheduleJob = null; UpdateData(DataDraft, null, false); break; } case ContentStatusChanged e: { ScheduleJob = null; SimpleMapper.Map(e, this); if (e.Status == Status.Published) { UpdateData(DataDraft, null, false); } break; } case ContentUpdated e: { UpdateData(e.Data, e.Data, false); break; } case ContentUpdateProposed e: { UpdateData(null, e.Data, true); break; } case ContentChangesDiscarded _: { UpdateData(null, Data, false); break; } case ContentSchedulingCancelled _: { ScheduleJob = null; break; } case ContentStatusScheduled e: { ScheduleJob = ScheduleJob.Build(e.Status, e.Actor, e.DueTime); break; } case ContentDeleted _: { IsDeleted = true; break; } } }
protected void On(ContentStatusScheduled @event) { ScheduleJob = ScheduleJob.Build(@event.Status, @event.Actor, @event.DueTime); }