C# 클래스 Gtd.Client.Models.ClientModel

This is part of the "Client Model" or "UI" Context This context is similar to a read model but it also has certain behaviors. You can perceive this "client model context" as an Aggregate that reacts to Events that are published by the to Domain Model. This "aggregate" maintains its own internal state that represents the state of a UI like a desktop application. When this state changes, this ClientModel publishes high-level UI-specific events like: StuffAddedToInbox, ProjectAdded, etc. These UI events are not "event sourced" (persisted events which are then replayed to get state), they are in-memory "dumb" UI events that do not need the level of detail that our persisted Event-Sourced Domain Model Events need. Our Domain Events are still the same granular ones that matter for when we are persisting the Domain Model state changes and using them to resolve the sync issues that come along with multi-user/device collaboration scenarios, but these in-memory "dumb" UI events do not need that level of detail to keep the UI up to date. Basically, we are modeling the things that will eventually be represented on a client's screen. Client Model is an underlying read model and notification sub-system for implementing a client application. Technically this Client Model context is reusable across various client/device types (desktop, tablet, web, phone, etc.), but the practicality of reusing it remains to be seen.
파일 보기 프로젝트 열기: beingtheworst/btw-gtd 1 사용 예제들

공개 프로퍼티들

프로퍼티 타입 설명
Id TrustedSystemId

공개 메소드들

메소드 설명
ActionArchived ( ActionId id ) : void
ActionCompleted ( ActionId actionId ) : void
ActionDefined ( ProjectId projectId, ActionId actionId, string outcome ) : void
ActionMoved ( ActionId actionId, ProjectId oldProjectId, ProjectId newProjectId ) : void
ActionOutcomeChanged ( ActionId actionId, string outcome ) : void
ClientModel ( IMessageQueue queue, TrustedSystemId id ) : System
Create ( TrustedSystemId id ) : void
DeferredUtil ( ActionId actionId, System.DateTime deferUntil ) : void
DescriptionOfStuffChanged ( StuffId stuffId, string newDescriptionOfStuff ) : void
DueDateAssigned ( ActionId actionId, System.DateTime newDueDate ) : void
GetInbox ( ) : ImmutableInbox
GetProjectOrNull ( ProjectId projectId ) : ImmutableProject
GetTheNumberOfItemsOfStuffInInbox ( ) : int
ListProjects ( ) : IList
LoadingCompleted ( ) : void
ProjectDefined ( ProjectId projectId, string projectOutcome, ProjectType type ) : void
ProjectOutcomeChanged ( ProjectId projectId, string outcome ) : void
ProjectTypeChanged ( ProjectId projectId, ProjectType type ) : void
StuffArchived ( StuffId stuffId ) : void
StuffPutInInbox ( StuffId stuffId, string descriptionOfStuff, System.DateTime date ) : void
StuffTrashed ( StuffId stuffId ) : void
Verify ( TrustedSystemId id ) : void

비공개 메소드들

메소드 설명
Publish ( Dumb e ) : void

메소드 상세

ActionArchived() 공개 메소드

public ActionArchived ( ActionId id ) : void
id ActionId
리턴 void

ActionCompleted() 공개 메소드

public ActionCompleted ( ActionId actionId ) : void
actionId ActionId
리턴 void

ActionDefined() 공개 메소드

public ActionDefined ( ProjectId projectId, ActionId actionId, string outcome ) : void
projectId ProjectId
actionId ActionId
outcome string
리턴 void

ActionMoved() 공개 메소드

public ActionMoved ( ActionId actionId, ProjectId oldProjectId, ProjectId newProjectId ) : void
actionId ActionId
oldProjectId ProjectId
newProjectId ProjectId
리턴 void

ActionOutcomeChanged() 공개 메소드

public ActionOutcomeChanged ( ActionId actionId, string outcome ) : void
actionId ActionId
outcome string
리턴 void

ClientModel() 공개 메소드

public ClientModel ( IMessageQueue queue, TrustedSystemId id ) : System
queue IMessageQueue
id TrustedSystemId
리턴 System

Create() 공개 메소드

public Create ( TrustedSystemId id ) : void
id TrustedSystemId
리턴 void

DeferredUtil() 공개 메소드

public DeferredUtil ( ActionId actionId, System.DateTime deferUntil ) : void
actionId ActionId
deferUntil System.DateTime
리턴 void

DescriptionOfStuffChanged() 공개 메소드

public DescriptionOfStuffChanged ( StuffId stuffId, string newDescriptionOfStuff ) : void
stuffId StuffId
newDescriptionOfStuff string
리턴 void

DueDateAssigned() 공개 메소드

public DueDateAssigned ( ActionId actionId, System.DateTime newDueDate ) : void
actionId ActionId
newDueDate System.DateTime
리턴 void

GetInbox() 공개 메소드

public GetInbox ( ) : ImmutableInbox
리턴 ImmutableInbox

GetProjectOrNull() 공개 메소드

public GetProjectOrNull ( ProjectId projectId ) : ImmutableProject
projectId ProjectId
리턴 ImmutableProject

GetTheNumberOfItemsOfStuffInInbox() 공개 메소드

public GetTheNumberOfItemsOfStuffInInbox ( ) : int
리턴 int

ListProjects() 공개 메소드

public ListProjects ( ) : IList
리턴 IList

LoadingCompleted() 공개 메소드

public LoadingCompleted ( ) : void
리턴 void

ProjectDefined() 공개 메소드

public ProjectDefined ( ProjectId projectId, string projectOutcome, ProjectType type ) : void
projectId ProjectId
projectOutcome string
type ProjectType
리턴 void

ProjectOutcomeChanged() 공개 메소드

public ProjectOutcomeChanged ( ProjectId projectId, string outcome ) : void
projectId ProjectId
outcome string
리턴 void

ProjectTypeChanged() 공개 메소드

public ProjectTypeChanged ( ProjectId projectId, ProjectType type ) : void
projectId ProjectId
type ProjectType
리턴 void

StuffArchived() 공개 메소드

public StuffArchived ( StuffId stuffId ) : void
stuffId StuffId
리턴 void

StuffPutInInbox() 공개 메소드

public StuffPutInInbox ( StuffId stuffId, string descriptionOfStuff, System.DateTime date ) : void
stuffId StuffId
descriptionOfStuff string
date System.DateTime
리턴 void

StuffTrashed() 공개 메소드

public StuffTrashed ( StuffId stuffId ) : void
stuffId StuffId
리턴 void

Verify() 공개 메소드

public Verify ( TrustedSystemId id ) : void
id TrustedSystemId
리턴 void

프로퍼티 상세

Id 공개적으로 프로퍼티

public TrustedSystemId Id
리턴 TrustedSystemId