示例#1
0
        public void Update(UpdateUsuarioCommand command)
        {
            var userSenha = usuarioDomainService.GetId(command.Id);

            if (userSenha == null)
            {
                throw new UsuarioInvalidoException();
            }

            if (usuarioDomainService.Get(userSenha.EMail, command.Senha) == null)
            {
                throw new SenhaInvalidaException();
            }

            var userEmail = usuarioDomainService.Get(command.EMail);

            if (userEmail != null && userEmail.Id != command.Id && userEmail.EMail == command.EMail)
            {
                throw new EmailJaCadastradoExcpetion(command.EMail);
            }

            var usuario = mapper.Map <Usuario>(command);

            var validation = new UsuarioValidation().Validate(usuario);

            if (!validation.IsValid)
            {
                throw new ValidationException(validation.Errors);
            }

            usuarioDomainService.Update(usuario);
        }