public Response Apply(TransferRequest req) { var srcAccount = Get(req.SourceAccountId); var destAccount = Get(req.DestinationAccountId); var srcEvent = req.ToSourceAccountTransaction(); var destEvent = req.ToDestinationAccountTransaction(); var srcEventValid = srcAccount.ValidateProposed(srcEvent); var destEventValid = destAccount.ValidateProposed(destEvent); if (!srcEventValid || !destEventValid) { return(Response.Errored(ResponseStatus.InvalidState, $"{srcEventValid.IssuesMessage} {destEventValid.IssuesMessage}")); } _eventStore.Commit(srcEvent, destEvent); return(Response.Success); }