Пример #1
0
        public void RetornaResultResgate63Meses(decimal valorAplcado, Tipo tipo, decimal porcentagem, string dataCriacao)
        {
            ResultResgate resgateEsperado = new ResultResgate();

            switch (tipo)
            {
            case Tipo.Mensal:
                resgateEsperado = new ResultResgate {
                    IR = 1039.5m, LucroBruto = 6930.0m, LucroLiquido = 5890.5m, TotalReagate = 7890.5m
                };
                break;

            case Tipo.Semestral:
                resgateEsperado = new ResultResgate {
                    IR = 1039.5m, LucroBruto = 6930.0m, LucroLiquido = 5890.5m, TotalReagate = 7890.5m
                };
                break;

            case Tipo.Anual:
                resgateEsperado = new ResultResgate {
                    IR = 41.25m, LucroBruto = 275.0m, LucroLiquido = 233.75m, TotalReagate = 1233.75m
                };
                break;

            default:
                break;
            }
            var meses = Meses.Contar(DateTime.Parse(dataCriacao));

            ResultResgate resgate = Operacao.Resgate(tipo, meses, valorAplcado, porcentagem);

            Assert.Equal(resgateEsperado.LucroBruto, resgate.LucroBruto);
            Assert.Equal(resgateEsperado.LucroLiquido, resgate.LucroLiquido);
            Assert.Equal(resgateEsperado.TotalReagate, resgate.TotalReagate);
        }
Пример #2
0
        public async Task <ActionResult> GetProduto(Guid id)
        {
            // Request - Status { 0 = Não é possivel o resgate, 1 = OK o resgate, 2 = resgate imcompleto ,
            try
            {
                var produto = await _context.Produtos.FindAsync(id);

                var meses = Meses.Contar(produto.DataCriacao);

                if (meses >= 0)
                {
                    //Chama a operação de Resgate do Produto
                    ResultResgate result = Operacao.Resgate(produto.Tipo, meses, produto.ValorAplcado, produto.Porcentagem);


                    produto.DataResgate = DateTime.Now;

                    _context.SaveChanges();

                    return(Ok(new
                    {
                        Status = 1,
                        result
                    }));
                }
                else
                {
                    return(NotFound(new
                    {
                        Status = 0,
                        Message = "Não é possivel o resgate, pois data de resgate menor que data de aplicação"
                    }));
                }
                ;
            }
            catch (Exception)
            {
                return(NotFound(new
                {
                    Status = 2,
                    Message = "Não é possivel o resgate, pois data de resgate menor que data de aplicação"
                }));
            }
        }