示例#1
0
        public async Task <CriarClienteCommandResult> Handle(CriarClienteCommand request, CancellationToken cancellationToken)
        {
            var clienteExistente = await _clienteRepositorio.ObterClientePorDocumentoAsync(request.Documento, cancellationToken);

            if (clienteExistente != null)
            {
                throw new ClienteJaCadastradoException("Cliente já cadastrado.");
            }

            var cliente = _mapper.Map <Cliente>(request);

            var result = await _clienteRepositorio.CriarClienteAsync(cliente, cancellationToken);

            return(new CriarClienteCommandResult
            {
                Documento = result.Documento,
                Nome = result.Nome
            });
        }