示例#1
0
        // SOLICITAR CONTA
        public async Task <EnderecoDto> Add(SolicitarContaDto solicitarContaDto)
        {
            var enderecoAdicionado = await _enderecoService.Add(solicitarContaDto.Endereco);

            // MONTANDO O OBJETO DO TIPO PESSOA
            PessoaDto pessoaDto = new PessoaDto
            {
                Nome       = solicitarContaDto.NomeConta,
                CPF        = solicitarContaDto.CPF,
                EnderecoId = enderecoAdicionado.Id
            };
            // INSERINDO NO BANCO
            var pessoaAdicionada = await _pessoaService.Add(pessoaDto);

            // MONTANDO O OBJETO DO TIPO CONTA
            ContaDto contaDto = new ContaDto
            {
                NomeConta = solicitarContaDto.NomeConta,
                CPF       = solicitarContaDto.CPF,
                Senha     = solicitarContaDto.Senha,
                TipoConta = solicitarContaDto.TipoConta,
                Situacao  = 3,
                PessoaId  = pessoaAdicionada.Id
            };
            // INSERINDO NO BANCO
            var contaAdicionada = await _contaService.Add(contaDto);

            return(enderecoAdicionado);
        }
示例#2
0
        public ContaDto InfoConta(int Num_SeqlConta)
        {
            Connect();
            ExecuteProcedure(Procedures.BNK_SelInfoCliente.ToString());
            AddParameter("@Num_SeqlConta", Num_SeqlConta);

            ContaDto conta = new ContaDto();

            using (var leitor = ExecuteReader())
            {
                leitor.Read();

                conta = new ContaDto()
                {
                    Num_SeqlConta    = leitor.GetInt32(leitor.GetOrdinal("Num_SeqlConta")),
                    Cod_TipoConta    = leitor.GetByte(leitor.GetOrdinal("Cod_TipoConta")),
                    Num_SaldoConta   = leitor.GetDecimal(leitor.GetOrdinal("Num_SaldoConta")),
                    Date_DataCriacao = leitor.GetDateTime(leitor.GetOrdinal("Date_DataCriacao")),
                    Nom_TipoConta    = leitor.GetString(leitor.GetOrdinal("Nom_TipoConta")),
                    Nom_NomeUsuar    = leitor.GetString(leitor.GetOrdinal("Nom_NomeUsuar")),
                    Num_SeqlUsuar    = leitor.GetInt32(leitor.GetOrdinal("Num_SeqlUsuar"))
                };
            }

            return(conta);
        }
示例#3
0
        private Mock <IObterContaUseCase> MockObterContaUseCase(ContaDto contaDto)
        {
            var mock = new Mock <IObterContaUseCase>();

            mock.Setup(x => x.Execute(It.IsAny <int>())).Returns(contaDto);

            return(mock);
        }
示例#4
0
        public async Task <IActionResult> Add(ContaDto contaDto)
        {
            try {
                var contaAdd = await _service.Add(contaDto);

                return(Created($"/api/conta/{contaAdd.Id}", contaAdd));
            }catch (ArgumentException e) {
                return(this.StatusCode(StatusCodes.Status500InternalServerError, $"{e.Message}"));
            }
        }
        public IHttpActionResult EditConfirmed(ContaDto conta)
        {
            ContaDto conta_Att = _contaRepository.AttConta(conta);

            if (conta_Att == null)
            {
                return(BadRequest("Não foi possível atualizar a conta!"));
            }

            return(Ok(conta_Att));
        }
示例#6
0
        public async Task <IActionResult> Update(ContaDto contaDto)
        {
            try {
                var contaUpdate = await _service.Update(contaDto);

                return(Ok(contaUpdate));
            }
            catch (NotFoundException e) {
                return(this.StatusCode(StatusCodes.Status404NotFound, $"{e.Message}"));
            }
            catch (ArgumentException e) {
                return(this.StatusCode(StatusCodes.Status500InternalServerError, $"{e.Message}"));
            }
        }
示例#7
0
        public static IList <ContaDto> Map(this IList <Conta> entities)
        {
            var dtos = new List <ContaDto>();

            foreach (var entity in entities)
            {
                var dto = new ContaDto
                {
                    numeroConta  = entity.numeroConta,
                    digito       = entity.digito,
                    saldoInicial = entity.saldoInicial
                };
            }
            return(dtos);
        }
示例#8
0
        public async Task <ContaDto> AddPoupanca(ContaDto contaDto)
        {
            bool existeContaPoupanca = await _repo.ExisteContaPoupanca(contaDto.PessoaId);

            if (existeContaPoupanca)
            {
                throw new ArgumentException("Ja existe uma conta poupanca para essa pessoa!");
            }
            var conta = _map.Map <Conta>(contaDto);

            _repo.Add(conta);

            if (await _repo.SaveAsync())
            {
                return(_map.Map <ContaDto>(conta));
            }
            throw new ArgumentException("Erro ao persistir dados");
        }
示例#9
0
        // ATUALIZAR CONTA
        public async Task <ContaDto> Update(ContaDto contaDto)
        {
            var conta = await _repo.GetByIdAsync(contaDto.Id);

            //contaDto.Senha = MD5(contaDto.Senha);
            if (conta == null)
            {
                throw new NotFoundException("Nenhuma conta encontrada com esse id");
            }

            _map.Map(contaDto, conta);

            _repo.Update(conta);
            if (await _repo.SaveAsync())
            {
                return(_map.Map <ContaDto>(conta));
            }
            throw new ArgumentException("Erro ao persistir dados");
        }
        public async Task <IActionResult> Nova([FromBody] ContaDto contaInformada)
        {
            var usuario           = User.FindFirstValue(ClaimTypes.NameIdentifier);
            var usuarioEncontrado = await _context.Usuarios.FirstOrDefaultAsync(e => e.Login == usuario);

            var contaEncontrada = await _context.Contas.FirstOrDefaultAsync(e => e.Descricao == contaInformada.Descricao && e.Usuario == usuarioEncontrado);

            if (contaEncontrada != null)
            {
                return(Conflict());
            }

            var novaConta = _mapper.Map <Conta>(contaInformada);

            novaConta.Usuario = usuarioEncontrado;

            _context.Contas.Add(novaConta);
            _context.SaveChanges();

            return(Ok());
        }
示例#11
0
        /// <summary>
        /// Converte uma conta de DTO para Model
        /// </summary>
        /// <param name="contaDto"></param>
        /// <param name="mensagemErro"></param>
        /// <returns></returns>
        public bool ConverterDtoParaModel(ContaDto contaDto, ref string mensagemErro)
        {
            try
            {
                Descricao       = string.IsNullOrWhiteSpace(contaDto.Descricao) ? "" : contaDto.Descricao.Trim();
                Valor           = contaDto.Valor;
                Status          = contaDto.Status;
                DataAlteracao   = contaDto.DataAlteracao;
                DataInclusao    = contaDto.DataInclusao;
                DataCompetencia = contaDto.DataCompetencia;
                DataVencimento  = contaDto.DataVencimento;
                Id = contaDto.Id;

                return(true);
            }
            catch (Exception ex)
            {
                mensagemErro = ex.Message;
                return(false);
            }
        }
示例#12
0
        /// <summary>
        /// Converte uma conta de Model para Dto
        /// </summary>
        /// <param name="contaDto"></param>
        /// <param name="mensagemErro"></param>
        /// <returns></returns>
        public bool ConverterModelParaDto(ContaDto contaDto, ref string mensagemErro)
        {
            try
            {
                contaDto.Descricao       = string.IsNullOrWhiteSpace(Descricao) ? "" : Descricao.Trim();
                contaDto.Valor           = Valor;
                contaDto.Status          = Status;
                contaDto.DataAlteracao   = this.DataAlteracao;
                contaDto.DataInclusao    = this.DataInclusao;
                contaDto.DataCompetencia = this.DataCompetencia;
                contaDto.DataVencimento  = this.DataVencimento;
                contaDto.Id = this.Id;

                return(true);
            }
            catch (Exception ex)
            {
                mensagemErro = ex.Message;
                return(false);
            }
        }
示例#13
0
        // 0 -> Ativada, 1 -> Desativada, 2 -> Bloqueada, 3 -> Analise

        // ADICIONAR CONTA
        public async Task <ContaDto> Add(ContaDto contaDto)
        {
            var helperConta = await GerarContaAndAgencia(contaDto.PessoaId);

            contaDto.DigitosConta   = helperConta.Conta;
            contaDto.DigitosAgencia = helperConta.Agencia;
            contaDto.Senha          = MD5(contaDto.Senha);

            if (contaDto.TipoConta == 0)
            {
                bool existeContaCorrete = await _repo.ExisteContaCorrente(contaDto.PessoaId);

                if (existeContaCorrete)
                {
                    throw new ArgumentException("Ja existe uma conta corrente para essa pessoa");
                }
            }
            else if (contaDto.TipoConta != 0)
            {
                bool existeContaPoupanca = await _repo.ExisteContaPoupanca(contaDto.PessoaId);

                if (existeContaPoupanca)
                {
                    throw new ArgumentException("Ja existe uma conta poupanca para essa pessoa!");
                }
            }

            contaDto.CPF = await _pessoaService.GetCpfById(contaDto.PessoaId);

            var conta = _map.Map <Conta>(contaDto);

            _repo.Add(conta);

            if (await _repo.SaveAsync())
            {
                return(_map.Map <ContaDto>(conta));
            }
            throw new ArgumentException("Erro ao persistir dados");
        }
示例#14
0
        public ContaDto AttConta(ContaDto conta)
        {
            bool ins_op = false;

            Connect();
            ExecuteProcedure(Procedures.BNK_AttConta.ToString());
            AddParameter("@Num_SeqlConta", conta.Num_SeqlConta);
            AddParameter("@Cod_TipoConta", conta.Cod_TipoConta);

            ins_op = ExecuteNonQueryWithReturn() == 0 ? true : ins_op;

            if (ins_op)
            {
                Connect();
                ExecuteProcedure(Procedures.BNK_SelInfoCliente.ToString());
                AddParameter("@Num_SeqlConta", conta.Num_SeqlConta);

                ContaDto conta_Att = new ContaDto();

                using (var leitor = ExecuteReader())
                {
                    leitor.Read();

                    conta_Att = new ContaDto()
                    {
                        Num_SeqlConta    = leitor.GetInt32(leitor.GetOrdinal("Num_SeqlConta")),
                        Cod_TipoConta    = leitor.GetByte(leitor.GetOrdinal("Cod_TipoConta")),
                        Nom_NomeUsuar    = leitor.GetString(leitor.GetOrdinal("Nom_NomeUsuar")),
                        Num_SaldoConta   = leitor.GetDecimal(leitor.GetOrdinal("Num_SaldoConta")),
                        Date_DataCriacao = leitor.GetDateTime(leitor.GetOrdinal("Date_DataCriacao")),
                        Nom_TipoConta    = leitor.GetString(leitor.GetOrdinal("Nom_TipoConta"))
                    };
                }

                return(conta_Att);
            }

            return(null);
        }
示例#15
0
 public static Conta Map(this ContaDto dto)
 {
     return(Conta.Criar(dto.numeroConta, dto.digito, dto.saldoInicial));
 }
示例#16
0
        public ContaTestes()
        {
            Id          = Guid.NewGuid();
            Name        = Faker.Name.FullName();
            Description = "Conta Corrente";
            Balance     = 0;
            Status      = true;

            for (int i = 0; i < 10; i++)
            {
                var dto = new ContaDto()
                {
                    Id          = Guid.NewGuid(),
                    Name        = Faker.Name.FullName(),
                    Description = "Conta Corrente",
                    Balance     = 0,
                    Status      = true
                };
                listaContaDto.Add(dto);
            }

            contaDto = new ContaDto
            {
                Id          = Id,
                Name        = Name,
                Description = Description,
                Balance     = Balance,
                Status      = Status
            };

            contaDtoCreate = new ContaDtoCreate
            {
                Name        = Name,
                Description = Description,
                Status      = Status
            };

            contaDtoCreateResult = new ContaDtoCreateResult
            {
                Id          = Id,
                Name        = Name,
                Description = Description,
                Status      = Status,
                Balance     = Balance,
                CreateAt    = DateTime.UtcNow
            };

            contaDtoUpdate = new ContaDtoUpdate
            {
                Id          = Id,
                Name        = Name,
                Description = Description,
                Status      = Status,
            };

            contaDtoUpdateResult = new ContaDtoUpdateResult
            {
                Id          = Id,
                Name        = Name,
                Description = Description,
                Status      = Status,
                UpdateAt    = DateTime.UtcNow
            };
        }