예제 #1
0
        public async Task <ActionResult <BankAccount> > Create(CreateUserBankAccountDTO dto)
        {
            dto.UserId = GetLoggedUserId();

            await _bankAccountService.CreateBankAccountForUser(dto);

            // TODO: create common success handler

            var response = new
            {
                Success = true,
                Data    = "Conta bancária criada com sucesso"
            };

            return(Ok(response));
        }
예제 #2
0
        public async Task CreateBankAccountForUser(CreateUserBankAccountDTO dto)
        {
            var user = await _userRepository.GetById(dto.UserId);

            Validate.NotNull(user, "É necessário um usuário para criar uma conta de banco.");

            Validate.NotNullOrEmpty(dto.Agency, "É necessário fornecer uma agência.");

            Validate.NotNullOrEmpty(dto.Number, "É necessário fornecer o número da conta bancária.");

            BankCode.ValidateCode(dto.Code);

            var code = BankCode.FromValue <BankCode>(dto.Code);

            var bankAccount = new BankAccount(dto.Number, dto.Agency, code, dto.UserId);

            _bankAccountRepository.Insert(bankAccount);
            Validate.IsTrue(await _uow.CommitAsync(), "Não foi possível criar a conta bancária");
        }