示例#1
0
        /// <summary>
        /// This is the entry point of the service host process.
        /// </summary>
        private static void Main()
        {
            try
            {
                // The ServiceManifest.XML file defines one or more service type names.
                // Registering a service maps a service type name to a .NET type.
                // When Service Fabric creates an instance of this service type,
                // an instance of the class is created in this host process.

                ClienteContext.Initialize();
                ContaContext.Initialize();

                ServiceRuntime.RegisterServiceAsync("Sciensa.Desafio.API.ClienteType",
                                                    context => new ServiceCliente(context)).GetAwaiter().GetResult();

                ServiceEventSource.Current.ServiceTypeRegistered(Process.GetCurrentProcess().Id, typeof(ServiceCliente).Name);

                // Prevents this host process from terminating so services keeps running.
                Thread.Sleep(Timeout.Infinite);
            }
            catch (Exception e)
            {
                ServiceEventSource.Current.ServiceHostInitializationFailed(e.ToString());
                throw;
            }
        }
        public bool ValidarDeposito(ContaContext conta, decimal valorDepositar, string[] notasDepositadas)
        {
            if (conta == null)
            {
                throw new Exception("Conta não consta em nosso banco de dados.Aguarde alguns minutos e tente novamente.");
            }
            else if (valorDepositar == 0 || valorDepositar > 5000)
            {
                return(false);
            }
            else if (this.ConsultarNotasDisponiveis() != null)
            {
                var notasDisponives = this.ConsultarNotasDisponiveis();

                notasDisponives[0] += Convert.ToInt32(notasDepositadas[0]);
                notasDisponives[1] += Convert.ToInt32(notasDepositadas[1]);
                notasDisponives[2] += Convert.ToInt32(notasDepositadas[2]);
                notasDisponives[3] += Convert.ToInt32(notasDepositadas[3]);

                if (notasDisponives[0] > 100 || notasDisponives[1] > 100 || notasDisponives[2] > 100 ||
                    notasDisponives[3] > 100)
                {
                    throw new Exception("valor para depósito excede quantidade de notas máximas permitidas no caixa.");
                }
            }
            return(true);
        }
示例#3
0
        public void GetContaPagar()
        {
            var options = new DbContextOptionsBuilder <ContaContext>()
                          .UseInMemoryDatabase(databaseName: "WebAPI")
                          .Options;

            using (var context = new ContaContext(options))
            {
                context.Add(new Conta
                {
                    Nome           = "Conta 01",
                    ValorOriginal  = 100,
                    DataVencimento = Convert.ToDateTime("2021-01-01"),
                    DataPagamento  = Convert.ToDateTime("2021-01-20")
                });

                context.SaveChanges();
            }

            using (var context = new ContaContext(options))
            {
                ContaPagarController contaPagarController = new ContaPagarController(context);

                var result = contaPagarController.Get() as ObjectResult;

                var contas = Assert.IsType <List <Conta> >(result.Value);
                Assert.True(contas.Count > 0);
            }
        }
示例#4
0
        public IActionResult Delete(int id)
        {
            var result = ContaContext.DeletarConta(id);

            if (result)
            {
                return(new OkResult());
            }
            else
            {
                return(new NotFoundResult());
            }
        }
示例#5
0
        public ActionResult Put(int id, [FromBody] ContaModel conta)
        {
            var result = ContaContext.AtualizarConta(id, conta);

            if (result)
            {
                return(new OkResult());
            }
            else
            {
                return(new NotFoundResult());
            }
        }
示例#6
0
        public ContaContext ListarContas()
        {
            ContaContext conta = new ContaContext()
            {
                Agencia        = 2020,
                Banco          = 341,
                CpfCliente     = 12345678900,
                IdConta        = 001,
                NumeroContaCli = 20203411,
                SaldoConta     = 1000,
                SenhaConta     = 12346,
                TipoConta      = 01
            };

            return(conta);
        }
 public bool ValidarSaque(decimal valorSacar, ContaContext contaUsuario, CaixaEletronicoContext caixaEletronico)
 {
     if (contaUsuario.SaldoConta < valorSacar)
     {
         return(false);
     }
     else if (valorSacar % 10 != 0)
     {
         return(false);
     }
     else if (caixaEletronico.Valor_Disponivel < valorSacar)
     {
         throw new Exception("Valor para saque maior que o saldo disponível em caixa.");
     }
     return(true);
 }
示例#8
0
        public ContaContext ListarContas()
        {
            ContaContext conta = new ContaContext()
            {
                Agencia        = 234,
                Banco          = 55,
                CpfCliente     = 39422493838,
                IdConta        = 001,
                NumeroContaCli = 23412213,
                SaldoConta     = 3000,
                SenhaConta     = 123,
                TipoConta      = 01
            };

            return(conta);
        }
        public void CaixaEletronicoDAOTest_ValidarSaqueC3()
        {
            var options = testesUteis.CriarDataBaseTeste("ValidarSaqueDAOC3Teste");

            decimal valorSacar = 1000;

            ContaContext conta = testesUteis.ListarContas();

            conta.SaldoConta = 5000;

            CaixaEletronicoContext caixa = testesUteis.ListarCaixas();

            caixa.Valor_Disponivel = 500;

            using (var context = new CommonDbContext(options))
            {
                caixaEletronicoDao = new CaixaEletronicoDAO(context);

                var result = caixaEletronicoDao.ValidarSaque(valorSacar, conta, caixa);
            }
        }
示例#10
0
        public void PostContaPagarInvalido()
        {
            var options = new DbContextOptionsBuilder <ContaContext>()
                          .UseInMemoryDatabase(databaseName: "WebAPI")
                          .Options;

            using (var context = new ContaContext(options))
            {
                ContaPagarController contaPagarController = new ContaPagarController(context);

                var conta = new Conta
                {
                    Nome           = "",
                    ValorOriginal  = 100,
                    DataVencimento = Convert.ToDateTime("2021-01-01"),
                    DataPagamento  = Convert.ToDateTime("2021-01-01")
                };

                var result = contaPagarController.Post(conta) as ObjectResult;

                Assert.Equal("Nome da conta é obrigatório", result.Value);
            }
        }
        public void ContaContextTeste()
        {
            var obj = new ContaContext()
            {
                Agencia        = 2020,
                Banco          = 341,
                CpfCliente     = 123456787900,
                IdConta        = 1,
                SenhaConta     = 123456,
                TipoConta      = 1,
                NumeroContaCli = 20203411,
                SaldoConta     = 1000
            };

            Assert.AreEqual(2020, obj.Agencia);
            Assert.AreEqual(341, obj.Banco);
            Assert.AreEqual(123456787900, obj.CpfCliente);
            Assert.AreEqual(1, obj.IdConta);
            Assert.AreEqual(123456, obj.SenhaConta);
            Assert.AreEqual(1, obj.TipoConta);
            Assert.AreEqual(20203411, obj.NumeroContaCli);
            Assert.AreEqual(1000, obj.SaldoConta);
        }
示例#12
0
 public ClienteRepository(ContaContext context) : base(context)
 {
 }
示例#13
0
 public UnitOfWork(ContaContext context)
 {
     _context = context;
 }
示例#14
0
 public ContaPagarController(ContaContext context)
 {
     _contaContext = context;
 }
示例#15
0
 public ContaRepository(ContaContext context)
 {
     _context = context;
 }
示例#16
0
 public Repository(ContaContext context)
 {
     Db    = context;
     DbSet = Db.Set <TEntity>();
 }
示例#17
0
 public ContasController(ContaContext context)
 {
     _context = context;
 }
示例#18
0
 public TransacoesRepository(ContaContext context) : base(context)
 {
 }
示例#19
0
 public Repository(ContaContext contaContext)
 {
     _contaContext = contaContext;
     _entidade     = _contaContext.Set <T>();
 }
示例#20
0
 public OperacaoController(ContaContext context)
 {
     _context = context;
 }
示例#21
0
 public AppController(ContaContext context)
 {
     _context = context;
 }
示例#22
0
 public ContaRepository(ContaContext context) : base(context)
 {
 }
示例#23
0
        public IActionResult Post([FromBody] ContaModel conta)
        {
            ContaContext.IncluirConta(conta);

            return(new OkResult());
        }