Exemplo n.º 1
0
        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))));
            }
        }
Exemplo n.º 2
0
        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));
        }