C# Class 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.
Afficher le fichier Open project: beingtheworst/btw-gtd Class Usage Examples

Méthodes publiques

Свойство Type Description
EventsCausingChanges List

Méthodes publiques

Méthode Description
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

Private Methods

Méthode Description
GetActionOrThrow ( ActionId id ) : ActionInfo
GetProjectOrThrow ( ProjectId projectId ) : ProjectInfo
NewGuidIfEmpty ( RequestId requestId ) : System.Guid

Method Details

Apply() public méthode

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
Résultat void

ArchiveAction() public méthode

public ArchiveAction ( ActionId actionId, ITimeProvider time ) : void
actionId ActionId
time ITimeProvider
Résultat void

ChangeActionOutcome() public méthode

public ChangeActionOutcome ( ActionId actionId, string outcome, ITimeProvider time ) : void
actionId ActionId
outcome string
time ITimeProvider
Résultat void

ChangeDescriptionOfStuff() public méthode

public ChangeDescriptionOfStuff ( StuffId stuffId, string newDescriptionOfStuff, ITimeProvider time ) : void
stuffId StuffId
newDescriptionOfStuff string
time ITimeProvider
Résultat void

ChangeProjectOutcome() public méthode

public ChangeProjectOutcome ( ProjectId projectId, string outcome, ITimeProvider time ) : void
projectId ProjectId
outcome string
time ITimeProvider
Résultat void

ChangeProjectType() public méthode

public ChangeProjectType ( ProjectId projectId, ProjectType type, ITimeProvider time ) : void
projectId ProjectId
type ProjectType
time ITimeProvider
Résultat void

CompleteAction() public méthode

public CompleteAction ( ActionId actionId, ITimeProvider provider ) : void
actionId ActionId
provider ITimeProvider
Résultat void

Create() public méthode

public Create ( TrustedSystemId id ) : void
id TrustedSystemId
Résultat void

DeferActionUntil() public méthode

public DeferActionUntil ( ActionId actionId, System.DateTime newStartDate ) : void
actionId ActionId
newStartDate System.DateTime
Résultat void

DefineAction() public méthode

public DefineAction ( RequestId requestId, ProjectId projectId, string outcome, ITimeProvider provider ) : void
requestId RequestId
projectId ProjectId
outcome string
provider ITimeProvider
Résultat void

DefineProject() public méthode

public DefineProject ( RequestId requestId, string name, ITimeProvider provider ) : void
requestId RequestId
name string
provider ITimeProvider
Résultat void

DefineSingleActionProject() public méthode

public DefineSingleActionProject ( RequestId requestId, StuffId stuffId, ITimeProvider provider ) : void
requestId RequestId
stuffId StuffId
provider ITimeProvider
Résultat void

InitIfNeeded() public méthode

public InitIfNeeded ( TrustedSystemId id ) : void
id TrustedSystemId
Résultat void

MoveActionsToProject() public méthode

public MoveActionsToProject ( IEnumerable actions, ProjectId targetProject, System.DateTime timeUtc ) : void
actions IEnumerable
targetProject ProjectId
timeUtc System.DateTime
Résultat void

MoveStuffToProject() public méthode

public MoveStuffToProject ( IEnumerable stuffToMove, ProjectId projectId, ITimeProvider provider ) : void
stuffToMove IEnumerable
projectId ProjectId
provider ITimeProvider
Résultat void

ProvideDueDateForAction() public méthode

public ProvideDueDateForAction ( ActionId actionId, System.DateTime newDueDate ) : void
actionId ActionId
newDueDate System.DateTime
Résultat void

PutStuffInInbox() public méthode

public PutStuffInInbox ( RequestId requestId, string stuffDescription, ITimeProvider provider ) : void
requestId RequestId
stuffDescription string
provider ITimeProvider
Résultat void

TrashStuff() public méthode

public TrashStuff ( StuffId stuffId, ITimeProvider provider ) : void
stuffId StuffId
provider ITimeProvider
Résultat void

TrustedSystemAggregate() public méthode

public TrustedSystemAggregate ( TrustedSystemState aggStateBeforeChanges ) : System
aggStateBeforeChanges TrustedSystemState
Résultat System

Property Details

EventsCausingChanges public_oe property

public List EventsCausingChanges
Résultat List