public Task <bool> Handle(NewShopperCommand newPaymentCommand, CancellationToken cancellationToken)
        {
            if (!newPaymentCommand.IsValid())
            {
                NotifyValidationErrors(newPaymentCommand);
                return(Task.FromResult(false));
            }

            var shopper = new Shopper(newPaymentCommand.Id, newPaymentCommand.FirstName, newPaymentCommand.LastName, newPaymentCommand.Email,
                                      newPaymentCommand.Gender, newPaymentCommand.BirthDate, newPaymentCommand.Address);

            repository.SaveAsync(shopper);

            return(Task.FromResult(true));
        }
        public async Task HandleCommand_WithRaiseEvent_Validation_Error()
        {
            //ARRANGE
            var mockShopperValidation = new Mock <ICommandValidation <ShopperCommand> >();

            mockShopperValidation
            .Setup(p => p.ValidateCommand(It.IsAny <NewShopperCommand>()))
            .Returns(Outcomes.Failure());

            var newShopperCommand = new NewShopperCommand(shopperID, firstName, lastName, email, Gender.Men, address, birthDate, mockShopperValidation.Object);

            var shopperCommandHandler = ReturnShopperCommandHandlerObject();

            //ACT
            var result = await shopperCommandHandler.Handle(newShopperCommand, CancellationToken.None);

            //ASSERT
            result.Should().BeFalse();
        }