Exemplo n.º 1
0
        public async Task CreateAccount(UserAccount userAccount)
        {
            BusinessException businessException = new BusinessException();

            if (await this.UserAccountRepository.GetOneByCriteria(UserAccountSpecification.GetByCPF(userAccount.CPF)) != null)
            {
                businessException.AddError(new BusinessValidationFailure()
                {
                    ErrorCode    = "0001A",
                    ErrorMessage = "Já existe um CPF cadastrado em nossa base"
                });
            }

            if (await this.UserAccountRepository.GetOneByCriteria(UserAccountSpecification.GetByEmail(userAccount.Email)) != null)
            {
                businessException.AddError(new BusinessValidationFailure()
                {
                    ErrorCode    = "0001B",
                    ErrorMessage = "Já existe um Email cadastrado em nossa base"
                });
            }

            businessException.ValidateAndThrow();

            //TODO: ALTO ACOMPLAMENTO COM O EF CORE
            using (var transaction = this.UserAccountRepository.CreateTransaction(isolationLevel: System.Data.IsolationLevel.ReadUncommitted))
            {
                try
                {
                    await this.UserAccountRepository.Save(userAccount);

                    transaction.Commit();
                }
                catch
                {
                    transaction.Rollback();
                }
            }
        }
Exemplo n.º 2
0
 public async Task <ActionResult> GetAll(string cpf)
 {
     return(Ok(await this.UserAccountRepository.GetAllByCriteria(UserAccountSpecification.GetByCPF(cpf))));
 }