public Task <Result <ValidatedRouteNetworkWalk> > HandleAsync(ValidateWalkOfInterest command) { var walkValidator = new WalkValidator(_routeNetworkRepository); var validateResult = walkValidator.ValidateWalk(command.WalkIds); if (validateResult.IsFailed) { return(Task.FromResult(Result.Fail <ValidatedRouteNetworkWalk>(validateResult.Errors.First()))); } else { return(Task.FromResult(Result.Ok <ValidatedRouteNetworkWalk>(new ValidatedRouteNetworkWalk(validateResult.Value)))); } }
public Task <Result <RouteNetworkInterest> > HandleAsync(RegisterWalkOfInterest command) { var interestProjection = _eventStore.Projections.Get <InterestsProjection>(); var walkOfInterest = new RouteNetworkInterest(command.InterestId, RouteNetworkInterestKindEnum.WalkOfInterest, command.WalkIds); var walkValidator = new WalkValidator(_routeNetworkRepository); var interestAR = new InterestAR(); var commandContext = new CommandContext(command.CorrelationId, command.CmdId, command.UserContext); var registerInterestResult = interestAR.RegisterWalkOfInterest(commandContext, walkOfInterest, interestProjection, walkValidator); if (registerInterestResult.IsSuccess) { _eventStore.Aggregates.Store(interestAR); } return(Task.FromResult(registerInterestResult)); }