C# Класс Gtd.Pcl.CoreDomain.AppServices.TrustedSystem.TrustedSystemAggregate

This is the behavioral half of our A+ES implementation. We split the Aggregates and Event Sourcing (A+ES) implementation into two distinct classes: - one for state (AggregateNameState), - and one for behavior (AggregateName), with the state object being held by the behavioral object (this Aggregate class). The two objects collaborate exclusively through the Aggregate's Apply() method. This ensures that an Aggregate's state is changed only by means of Events. When Events cause state changes to an Aggregate, the instant in-memory realization and reflection of this is in AggregateNameState, and the durable reflection of these changes are persisted back to the Event Stream by the ApplicationService. The AppService is what loads and calls the Aggregate and its behaviors, and acts as the atomic consistency boundary of an Aggregate & its contents.
Показать файл Открыть проект Примеры использования класса

Открытые свойства

Свойство Тип Описание
EventsCausingChanges List

Открытые методы

Метод Описание
Apply ( ITrustedSystemEvent eventThatHappened ) : void

Make Aggregate realize the event happened by applying it to the state and adding to the list of uncommitted events

ArchiveAction ( ActionId actionId, ITimeProvider time ) : void
ChangeActionOutcome ( ActionId actionId, string outcome, ITimeProvider time ) : void
ChangeDescriptionOfStuff ( StuffId stuffId, string newDescriptionOfStuff, ITimeProvider time ) : void
ChangeProjectOutcome ( ProjectId projectId, string outcome, ITimeProvider time ) : void
ChangeProjectType ( ProjectId projectId, ProjectType type, ITimeProvider time ) : void
CompleteAction ( ActionId actionId, ITimeProvider provider ) : void
Create ( TrustedSystemId id ) : void
DeferActionUntil ( ActionId actionId, System.DateTime newStartDate ) : void
DefineAction ( RequestId requestId, ProjectId projectId, string outcome, ITimeProvider provider ) : void
DefineProject ( RequestId requestId, string name, ITimeProvider provider ) : void
DefineSingleActionProject ( RequestId requestId, StuffId stuffId, ITimeProvider provider ) : void
InitIfNeeded ( TrustedSystemId id ) : void
MoveActionsToProject ( IEnumerable actions, ProjectId targetProject, System.DateTime timeUtc ) : void
MoveStuffToProject ( IEnumerable stuffToMove, ProjectId projectId, ITimeProvider provider ) : void
ProvideDueDateForAction ( ActionId actionId, System.DateTime newDueDate ) : void
PutStuffInInbox ( RequestId requestId, string stuffDescription, ITimeProvider provider ) : void
TrashStuff ( StuffId stuffId, ITimeProvider provider ) : void
TrustedSystemAggregate ( TrustedSystemState aggStateBeforeChanges ) : System

Приватные методы

Метод Описание
GetActionOrThrow ( ActionId id ) : ActionInfo
GetProjectOrThrow ( ProjectId projectId ) : ProjectInfo
NewGuidIfEmpty ( RequestId requestId ) : System.Guid

Описание методов

Apply() публичный Метод

Make Aggregate realize the event happened by applying it to the state and adding to the list of uncommitted events
public Apply ( ITrustedSystemEvent eventThatHappened ) : void
eventThatHappened ITrustedSystemEvent
Результат void

ArchiveAction() публичный Метод

public ArchiveAction ( ActionId actionId, ITimeProvider time ) : void
actionId ActionId
time ITimeProvider
Результат void

ChangeActionOutcome() публичный Метод

public ChangeActionOutcome ( ActionId actionId, string outcome, ITimeProvider time ) : void
actionId ActionId
outcome string
time ITimeProvider
Результат void

ChangeDescriptionOfStuff() публичный Метод

public ChangeDescriptionOfStuff ( StuffId stuffId, string newDescriptionOfStuff, ITimeProvider time ) : void
stuffId StuffId
newDescriptionOfStuff string
time ITimeProvider
Результат void

ChangeProjectOutcome() публичный Метод

public ChangeProjectOutcome ( ProjectId projectId, string outcome, ITimeProvider time ) : void
projectId ProjectId
outcome string
time ITimeProvider
Результат void

ChangeProjectType() публичный Метод

public ChangeProjectType ( ProjectId projectId, ProjectType type, ITimeProvider time ) : void
projectId ProjectId
type ProjectType
time ITimeProvider
Результат void

CompleteAction() публичный Метод

public CompleteAction ( ActionId actionId, ITimeProvider provider ) : void
actionId ActionId
provider ITimeProvider
Результат void

Create() публичный Метод

public Create ( TrustedSystemId id ) : void
id TrustedSystemId
Результат void

DeferActionUntil() публичный Метод

public DeferActionUntil ( ActionId actionId, System.DateTime newStartDate ) : void
actionId ActionId
newStartDate System.DateTime
Результат void

DefineAction() публичный Метод

public DefineAction ( RequestId requestId, ProjectId projectId, string outcome, ITimeProvider provider ) : void
requestId RequestId
projectId ProjectId
outcome string
provider ITimeProvider
Результат void

DefineProject() публичный Метод

public DefineProject ( RequestId requestId, string name, ITimeProvider provider ) : void
requestId RequestId
name string
provider ITimeProvider
Результат void

DefineSingleActionProject() публичный Метод

public DefineSingleActionProject ( RequestId requestId, StuffId stuffId, ITimeProvider provider ) : void
requestId RequestId
stuffId StuffId
provider ITimeProvider
Результат void

InitIfNeeded() публичный Метод

public InitIfNeeded ( TrustedSystemId id ) : void
id TrustedSystemId
Результат void

MoveActionsToProject() публичный Метод

public MoveActionsToProject ( IEnumerable actions, ProjectId targetProject, System.DateTime timeUtc ) : void
actions IEnumerable
targetProject ProjectId
timeUtc System.DateTime
Результат void

MoveStuffToProject() публичный Метод

public MoveStuffToProject ( IEnumerable stuffToMove, ProjectId projectId, ITimeProvider provider ) : void
stuffToMove IEnumerable
projectId ProjectId
provider ITimeProvider
Результат void

ProvideDueDateForAction() публичный Метод

public ProvideDueDateForAction ( ActionId actionId, System.DateTime newDueDate ) : void
actionId ActionId
newDueDate System.DateTime
Результат void

PutStuffInInbox() публичный Метод

public PutStuffInInbox ( RequestId requestId, string stuffDescription, ITimeProvider provider ) : void
requestId RequestId
stuffDescription string
provider ITimeProvider
Результат void

TrashStuff() публичный Метод

public TrashStuff ( StuffId stuffId, ITimeProvider provider ) : void
stuffId StuffId
provider ITimeProvider
Результат void

TrustedSystemAggregate() публичный Метод

public TrustedSystemAggregate ( TrustedSystemState aggStateBeforeChanges ) : System
aggStateBeforeChanges TrustedSystemState
Результат System

Описание свойств

EventsCausingChanges публичное свойство

public List EventsCausingChanges
Результат List