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.
Показать файл Открыть проект Примеры использования класса

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

Свойство Тип Описание
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