예제 #1
0
        public async Task AlterarEmail(Guid id, string novoEmail)
        {
            var cliente = await ObterCliente(id, "AlterarEmail");

            if (cliente == null)
            {
                return;
            }

            cliente.AlterarEmail(novoEmail);

            if (!ClienteValido(cliente))
            {
                return;
            }

            var validation = new ClienteAptoParaAtualizarValidation(cliente, _clienteRepository).Validate(cliente);

            if (!validation.IsValid)
            {
                NotificarValidacoesErro(validation);
                return;
            }

            await _clienteRepository.Atualizar(cliente);

            await _mediator.RaiseEvent(ClienteAdapter.ToClienteEmailAlteradoEvent(cliente));
        }
예제 #2
0
        public async Task Atualizar(Cliente cliente)
        {
            if (!ClienteValido(cliente))
            {
                return;
            }

            var validation = new ClienteAptoParaAtualizarValidation(cliente, _clienteRepository).Validate(cliente);

            if (!validation.IsValid)
            {
                NotificarValidacoesErro(validation);
                return;
            }

            await _clienteRepository.Atualizar(cliente);

            await _mediator.RaiseEvent(ClienteAdapter.ToClienteAtualizadoEvent(cliente));
        }
예제 #3
0
        public async Task AlterarSenha(Guid id, string senhaAtual, string novaSenha, bool ignorarSenhaAtual = false)
        {
            var cliente = await ObterCliente(id, "AlterarSenha");

            if (cliente == null)
            {
                return;
            }

            if (!ignorarSenhaAtual)
            {
                if (!ClienteSenha.VerificarSenha(senhaAtual, cliente.Senha))
                {
                    NotificarErro("AlterarSenha", "A senha atual do cliente está incorreta.");
                    return;
                }
            }

            cliente.AlterarSenha(ClienteSenha.Factory.NovaSenha(novaSenha));

            if (!ClienteValido(cliente))
            {
                return;
            }

            var validation = new ClienteAptoParaAtualizarValidation(cliente, _clienteRepository).Validate(cliente);

            if (!validation.IsValid)
            {
                NotificarValidacoesErro(validation);
                return;
            }

            await _clienteRepository.Atualizar(cliente);

            await _mediator.RaiseEvent(new ClienteSenhaAlteradaEvent(cliente.Id));
        }