public WriteModule(IWidgetCommandHandler handler) { _handler = handler; Post["/widgets/"] = parameters => { var postData = this.Bind <WidgetPostModel>(); var createWidgetCommand = new CreateWidget(Guid.NewGuid(), postData.Name); var respone = DispatchCommand(createWidgetCommand, HttpStatusCode.Created); respone.Headers.Add("location", $"/widgets/{createWidgetCommand.WidgetId}"); return(respone); }; }
protected virtual void OnCreateWidget() { CreateWidget.SafeInvoke(this, EventArgs.Empty); }
public void Handle(CreateWidget message) { var widgetAggregate = new WidgetAggregate(message.WidgetId, message.Name); _aggregateRepository.Save(widgetAggregate); }