예제 #1
0
        public Result AtualizarConta(AtualizarContaCommand command)
        {
            try
            {
                var result = command.Validate();
                if (result.IsFailure)
                {
                    return(result);
                }

                var contaOrNothing = _repository.ObterConta(command.Codigo);

                if (contaOrNothing.HasNoValue)
                {
                    return(Result.Fail("Não existe uma conta com o código especificado"));
                }

                var conta = contaOrNothing.Value;
                conta.Renomear(result.Value.Nome);
                conta.AtualizarIcone(result.Value.Icone);

                _repository.AtualizarConta(conta);

                return(Result.Ok());
            }
            catch (Exception ex)
            {
                return(Result.Fail("Falha ao atualizar conta"));
            }
        }