Carl Hörberg
Carl Hörberg

Reputation: 6005

How to map EditModel to Command Messages?

Jimmy Bogard at Los Techies says that he maps his EditModel to Command Messages instead of mapping EditModel to DomainModel. Can anyone explain this further?

Upvotes: 3

Views: 824

Answers (1)

John Foster
John Foster

Reputation: 8755

I'd guess it'd be a version of the command pattern that performs the necessary manipulations on the relevant domain objects based on the supplied message. e.g. Something like

public PromoteEmployeeCommand : ICommand {
     private readonly PromotionMessage _message;
     private readonly IEmployeeRepository _repository;

     public PromoteEmployeeCommand(PromotionMessage message,
                                   IEmployeeRepository repository) {
          _message = message;
          _repository = repository;
     }

     public void Execute() {
          /* Get the employee, give them a rise etc... */
     }
}

The mapping from the edit model would resolve to a number of command messages that could be invoked as required (e.g. Give employee a rise, notify their manager, add a note for payroll etc).

The advantage of this approach is that it can isolate your domain model from any presentational concerns exposed by the Edit model.

Upvotes: 4

Related Questions