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.
ファイルを表示 Open project: beingtheworst/btw-gtd Class Usage Examples

Public Properties

Property Type Description
EventsCausingChanges List

Public Methods

Method 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

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

Method Details

Apply() public method

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
return void

ArchiveAction() public method

public ArchiveAction ( ActionId actionId, ITimeProvider time ) : void
actionId ActionId
time ITimeProvider
return void

ChangeActionOutcome() public method

public ChangeActionOutcome ( ActionId actionId, string outcome, ITimeProvider time ) : void
actionId ActionId
outcome string
time ITimeProvider
return void

ChangeDescriptionOfStuff() public method

public ChangeDescriptionOfStuff ( StuffId stuffId, string newDescriptionOfStuff, ITimeProvider time ) : void
stuffId StuffId
newDescriptionOfStuff string
time ITimeProvider
return void

ChangeProjectOutcome() public method

public ChangeProjectOutcome ( ProjectId projectId, string outcome, ITimeProvider time ) : void
projectId ProjectId
outcome string
time ITimeProvider
return void

ChangeProjectType() public method

public ChangeProjectType ( ProjectId projectId, ProjectType type, ITimeProvider time ) : void
projectId ProjectId
type ProjectType
time ITimeProvider
return void

CompleteAction() public method

public CompleteAction ( ActionId actionId, ITimeProvider provider ) : void
actionId ActionId
provider ITimeProvider
return void

Create() public method

public Create ( TrustedSystemId id ) : void
id TrustedSystemId
return void

DeferActionUntil() public method

public DeferActionUntil ( ActionId actionId, System.DateTime newStartDate ) : void
actionId ActionId
newStartDate System.DateTime
return void

DefineAction() public method

public DefineAction ( RequestId requestId, ProjectId projectId, string outcome, ITimeProvider provider ) : void
requestId RequestId
projectId ProjectId
outcome string
provider ITimeProvider
return void

DefineProject() public method

public DefineProject ( RequestId requestId, string name, ITimeProvider provider ) : void
requestId RequestId
name string
provider ITimeProvider
return void

DefineSingleActionProject() public method

public DefineSingleActionProject ( RequestId requestId, StuffId stuffId, ITimeProvider provider ) : void
requestId RequestId
stuffId StuffId
provider ITimeProvider
return void

InitIfNeeded() public method

public InitIfNeeded ( TrustedSystemId id ) : void
id TrustedSystemId
return void

MoveActionsToProject() public method

public MoveActionsToProject ( IEnumerable actions, ProjectId targetProject, System.DateTime timeUtc ) : void
actions IEnumerable
targetProject ProjectId
timeUtc System.DateTime
return void

MoveStuffToProject() public method

public MoveStuffToProject ( IEnumerable stuffToMove, ProjectId projectId, ITimeProvider provider ) : void
stuffToMove IEnumerable
projectId ProjectId
provider ITimeProvider
return void

ProvideDueDateForAction() public method

public ProvideDueDateForAction ( ActionId actionId, System.DateTime newDueDate ) : void
actionId ActionId
newDueDate System.DateTime
return void

PutStuffInInbox() public method

public PutStuffInInbox ( RequestId requestId, string stuffDescription, ITimeProvider provider ) : void
requestId RequestId
stuffDescription string
provider ITimeProvider
return void

TrashStuff() public method

public TrashStuff ( StuffId stuffId, ITimeProvider provider ) : void
stuffId StuffId
provider ITimeProvider
return void

TrustedSystemAggregate() public method

public TrustedSystemAggregate ( TrustedSystemState aggStateBeforeChanges ) : System
aggStateBeforeChanges TrustedSystemState
return System

Property Details

EventsCausingChanges public_oe property

public List EventsCausingChanges
return List