예제 #1
0
        public async Task <IActionResult> Edit(int id, [Bind("Id,Nome,Data,Status")] Simulacao simulacao)
        {
            if (id != simulacao.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(simulacao);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!SimulacaoExists(simulacao.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(simulacao));
        }
예제 #2
0
        public static void Simulacao(Simulacao simulacao)
        {
            Conexao    conexao = new Conexao();
            SqlCommand command = new SqlCommand();

            command.Parameters.AddWithValue("@semanas", simulacao.Semanas);
            command.Parameters.AddWithValue("@infectados", simulacao.Infectados);
            command.Parameters.AddWithValue("@curados", simulacao.Curados);
            command.Parameters.AddWithValue("@mortos", simulacao.Mortos);
            command.Parameters.AddWithValue("@data", DateTime.Now);
            command.Parameters.AddWithValue("@id", simulacao.ID);

            try
            {
                command.Connection  = conexao.Conectar();
                command.CommandText = ("update SIMULACAO set semanas = @semanas where id = @id;");
                command.ExecuteNonQuery();
                command.CommandText = ("update SIMULACAO set infectados = @infectados where id = @id;");
                command.ExecuteNonQuery();
                command.CommandText = ("update SIMULACAO set curados = @curados where id = @id;");
                command.ExecuteNonQuery();
                command.CommandText = ("update SIMULACAO set mortos = @mortos where id = @id;");
                command.ExecuteNonQuery();
                command.CommandText = ("update SIMULACAO set data = @data where id = @id;");
                command.ExecuteNonQuery();
                conexao.Desconectar();
            }
            catch (SqlException)
            {
            }
        }
예제 #3
0
        internal void AffterMap(Simulacao origin)
        {
            if (origin == null)
            {
                return;
            }

            var day = origin.DataCompra.Value.Day;
            var dia = day.ToString();

            if (day < 10)
            {
                dia = $"0{day.ToString()}";
            }

            var month = origin.DataCompra.Value.Month;
            var mes   = month.ToString();

            if (month < 10)
            {
                mes = $"0{month.ToString()}";
            }

            var ano = origin.DataCompra.Value.Year;

            ValorJuros = origin.Juros;
            ValorTotal = origin.Total;
            DataCompra = $"{dia}/{mes}/{ano}";
        }
예제 #4
0
        public IActionResult Post([FromBody] Simulacao resultado)
        {
            if (resultado == null)
            {
                return(BadRequest("Alguma informação está ausente, ou inválida"));
            }

            else if (resultado.NumParcelas > 60)
            {
                return(BadRequest("O número de parcelas precisa ser menor que 60"));
            }

            else if (resultado.NumParcelas < 2)
            {
                return(BadRequest("O número de parcelas precisa ser maior que 2"));
            }

            else if (resultado.ValorDebito > 2000 && resultado.Parcelas.First().ValorParcela < 200)
            {
                return(BadRequest("O valor da menor parcela não pode ser inferior a 200,00 para valor total superior a 2.000,00"));
            }

            else if (resultado.ValorDebito <= 2000 && resultado.Parcelas.First().ValorParcela < 50)
            {
                return(BadRequest("O valor da menor parcela não pode ser inferior a 50,00 para valor igual ou inferior a 2.000,00"));
            }

            return(Ok(resultado));
        }
        public static void Simulacao(Simulacao simulacao)
        {
            Conexao    conexao = new Conexao();
            SqlCommand command = new SqlCommand();

            command.CommandText = "insert into SIMULACAO (id, semanas, infectados, curados, mortos, _data, nome, descricao) values (@id, @semanas, @infectados, @curados, @mortos, @data, @nome, @descricao)";
            command.Parameters.AddWithValue("@id", simulacao.ID);
            command.Parameters.AddWithValue("@semanas", simulacao.Semanas);
            command.Parameters.AddWithValue("@infectados", simulacao.Infectados);
            command.Parameters.AddWithValue("@curados", simulacao.Curados);
            command.Parameters.AddWithValue("@mortos", simulacao.Mortos);
            command.Parameters.AddWithValue("@data", simulacao.Data);
            command.Parameters.AddWithValue("@nome", simulacao.Nome);
            command.Parameters.AddWithValue("@descricao", simulacao.Descricao);

            try
            {
                command.Connection = conexao.Conectar();
                command.ExecuteNonQuery();
                conexao.Desconectar();
            }
            catch (SqlException)
            {
            }
        }
예제 #6
0
        private IEnumerable <Parcela> GeraParcelas(Simulacao simulacao)
        {
            var controle     = 0;
            var dataCompra   = simulacao.DataCompra.Value;
            var valorJuros   = (simulacao.ValorCompra * simulacao.Juros) / 100;
            var valorParcela = (simulacao.ValorCompra + valorJuros) / simulacao.QuantidadeParecelas;

            var parcelas =
                Enumerable.Range(1, simulacao.QuantidadeParecelas)
                .Select(x => {
                var vencimento = dataCompra;

                if (controle > 0)
                {
                    vencimento = vencimento.AddMonths(controle);
                }

                controle++;

                return(new Parcela {
                    Valor = valorParcela,
                    Vencimento = vencimento,
                    Juros = simulacao.Juros,
                });
            }).ToList();

            return(parcelas);
        }
예제 #7
0
        public IActionResult Get(decimal debito, int parcelas)
        {
            if (parcelas > 60)
            {
                return(BadRequest("O número de parcelas máximo é 60"));
            }

            else if (parcelas < 2)
            {
                return(BadRequest("O número de parcelas mínimo é 2"));
            }

            Simulacao resultado = new Simulacao(debito, parcelas);

            if (resultado.ValorDebito > 2000 && resultado.Parcelas.First().ValorParcela < 200)
            {
                return(BadRequest("O valor da menor parcela não pode ser inferior a 200,00 para valor total superior a 2.000,00"));
            }

            else if (resultado.ValorDebito <= 2000 && resultado.Parcelas.First().ValorParcela < 50)
            {
                return(BadRequest("O valor da menor parcela não pode ser inferior 50,00 para valor igual ou inferior a 2.000,00"));
            }

            return(Ok(resultado));
        }
        public void Processar(Simulacao simulacao)
        {
            //Verifica se a Etapa foi recrutada para a simulação.
            if (_etapaSimulacao == (simulacao.Etapa & _etapaSimulacao))
            {
                Console.WriteLine($"{this.GetType().Name} fornecendo {this._etapaSimulacao} etapa.");

                Console.WriteLine();

                //Remove a Etapa que foi processada.
                simulacao.Etapa &= ~_etapaSimulacao;
            }

            if (simulacao.IsComplete || _nextHandler == null)
            {
                Console.WriteLine("Concluída a Simulação.");

                Console.WriteLine();

                return;
            }
            else
            {
                //Chama o próximo Handler
                _nextHandler.Processar(simulacao);
            }
        }
        public ResultadoServiceTest()
        {
            _mockResultadoRepository = new Mock <IResultadoRepository>();
            _resultadoService        = new ResultadoService(_mockResultadoRepository.Object);
            Usuario usuario = new Usuario("Usuario Teste Resultado", "123");

            _simulacao = new Simulacao(50, DateTime.Parse("1994-08-27"), 18, "M", "N", usuario.Id);
        }
예제 #10
0
        public Simulacao Save(Simulacao simulacao)
        {
            _context.Simulacao.Add(simulacao);

            SaveChanges();

            return(simulacao);
        }
예제 #11
0
        public void FindByIdTest()
        {
            Simulacao simulacao = new Simulacao(50, DateTime.Parse("1994-08-27"), 18, "M", "N", _usuario.Id);

            _simulacaoRepository.Create(simulacao);

            Assert.IsNotNull(_simulacaoRepository.FindById(simulacao.Id));
        }
예제 #12
0
        public Simulacao SimularParcelas(Simulacao simulacao)
        {
            var parcelas = GeraParcelas(simulacao);

            simulacao.Parcelas = parcelas.ToList();
            simulacao.Total    = parcelas.Sum(x => x.Valor);

            return(simulacao);
        }
 public ResultadoRepositoryTest()
 {
     _mapper              = UtilitariosTest.GetMapper();
     _usuarioRepository   = new UsuarioRepository(UtilitariosTest.GetContext(), _mapper);
     _simulacaoRepository = new SimulacaoRepository(UtilitariosTest.GetContext(), _mapper);
     _resultadoRepository = new ResultadoRepository(UtilitariosTest.GetContext(), _mapper);
     _usuario             = new Usuario("Usuario Teste Resultado", "123");
     _usuarioRepository.Create(_usuario);
     _simulacao = new Simulacao(50, DateTime.Parse("1994-08-27"), 18, "M", "N", _usuario.Id);
     _simulacaoRepository.Create(_simulacao);
 }
예제 #14
0
        public ActionResult DeleteSimulacao(int idSimulacao)
        {
            IEnumerable <Estado> contexto       = ImplementaEstados.Brasil();
            Simulacao            simulacaoFinal = new Simulacao()
            {
                ID = Buscar.Simulacao().Last(q => q.ID >= 0).ID + 1
            };

            Excluir.Simulacao(idSimulacao);
            return(Ok("Simulação excluida com sucesso!"));
        }
예제 #15
0
        public ActionResult getSelecionaSimulacaoAnterior(int id)
        {
            List <Simulacao> simulacoes = Buscar.Simulacao();

            if (simulacoes.Any(q => q.ID == id))
            {
                simulacaoFinal          = simulacoes.First(q => q.ID == id);
                simulacaoFinal.Contexto = Buscar.Estados(id);
            }
            return(Ok(simulacaoFinal));
        }
예제 #16
0
        public void GetAllTest()
        {
            Usuario           usuario       = new Usuario("Usuario Teste Resultado", "123");
            Simulacao         simulacao     = new Simulacao(50, DateTime.Parse("1994-08-27"), 18, "M", "N", usuario.Id);
            IList <Simulacao> simulacaoList = new List <Simulacao>();

            simulacaoList.Add(simulacao);

            _mockSimulacaoRepository.Setup(r => r.GetAll()).Returns(simulacaoList.AsQueryable());
            Assert.IsNotNull(_simulacaoService.GetAll());
        }
예제 #17
0
        public async Task <IActionResult> Create([Bind("Id,Nome,Data,Status")] Simulacao simulacao)
        {
            if (ModelState.IsValid)
            {
                _context.Add(simulacao);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(simulacao));
        }
예제 #18
0
        public void UpdateTest()
        {
            Simulacao simulacao = new Simulacao(50, DateTime.Parse("1994-08-27"), 18, "M", "N", _usuario.Id);

            _simulacaoRepository.Create(simulacao);

            simulacao.Salario = 99;
            _simulacaoRepository.Update(simulacao);

            Assert.IsNotNull(_simulacaoRepository.FindById(simulacao.Id).Salario.Equals(99));
        }
        public Simulacao Create(Simulacao simulacao)
        {
            Simulacao novaSimulacao = null;
            long      id            = 0;

            using (var connection = new SqlConnection(connectionString))
            {
                id = connection.Query <int>("INSERT INTO Simulacao (cpf, varlor_total, juros, parcelas, data_compra) values(@Cpf, @ValorTotal, @Juros, @Parcelas, @DataCompra) SELECT CAST(SCOPE_IDENTITY() as int)",
                                            new { simulacao.Cpf, simulacao.ValorTotal, simulacao.Juros, simulacao.Parcelas, simulacao.DataCompra }).Single();
            };

            return(novaSimulacao);
        }
예제 #20
0
        private Parcela ObterParcela(Simulacao simulacao, int quantidadeParcelas)
        {
            simulacao.converteValorTotalParaReal();
            quantidadeParcelas = (quantidadeParcelas + 1);
            int      simulacaoId    = simulacao.Id;
            DateTime dataVencimento = simulacao.DataCompra.AddMonths(quantidadeParcelas);
            decimal  _valorJuros    = (simulacao.ValorTotal * simulacao.Juros) / 100;
            string   valorJuros     = _valorJuros.ToString("C2");
            string   valorParcela   = ((simulacao.ValorTotal / simulacao.Parcelas) + (simulacao.ValorTotal * simulacao.Juros) / 100).ToString("C2");
            Parcela  parcela        = new Parcela();

            parcela.Create(simulacaoId, quantidadeParcelas, dataVencimento, valorParcela, valorJuros);

            return(parcela);
        }
예제 #21
0
        public IActionResult SimularNegociacao(SimularNegociacaoViewModel cpfParcelasVM)
        {
            NegociacaoSimuladaViewModel simularNegociacaoVM;

            try
            {
                /*
                 * Manipulação dos dados com Entities
                 */
                var tomador = _context.Set <Tomador>().Where(x => x.CPF == cpfParcelasVM.cpf).FirstOrDefault();
                var divida  = tomador.Dividas.OrderBy(x => x.DividaId).LastOrDefault();
                //Para simplificação, apenas a primeira parcela foi calculada e registrada
                var parcela = new Parcela()
                {
                    NumeroParcela     = 0,
                    VencimentoParcela = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month)), //Último dia do mês (mês em que isto é executado)
                    ValorParcela      = Decimal.Round(divida.Valor / cpfParcelasVM.qtdParcelas, 2)
                };
                var simulacao = new Simulacao()
                {
                    Parcelas = new List <Parcela>()
                    {
                        parcela
                    }
                };

                tomador.Dividas.FirstOrDefault().Simulacoes.Add(simulacao);
                _context.Set <Tomador>().Update(tomador);
                _context.SaveChanges();


                /*
                 * Montagem da ViewModel para retorn de dados
                 */
                var simulacaoId    = tomador.Dividas.OrderBy(x => x.DividaId).LastOrDefault().Simulacoes.OrderBy(x => x.SimulacaoId).LastOrDefault().SimulacaoId;
                var parcelamentoVM = new ParcelamentoViewModel(parcela.NumeroParcela, parcela.VencimentoParcela, parcela.ValorParcela);
                simularNegociacaoVM = new NegociacaoSimuladaViewModel(cpfParcelasVM.cpf, simulacaoId, parcelamentoVM);
            }
            catch (Exception)
            {
                return(NotFound());
            }
            return(Ok(simularNegociacaoVM));
        }
예제 #22
0
 private void btnCalcular_Click(object sender, EventArgs e)
 {
     valido = true;
     limparMarcacao();
     lbValidar.Text = validarCampos();
     if (valido)
     {
         DadosCalculos dadosCalculos = new DadosCalculos();
         dadosCalculos.dataCompra     = dataCompra;
         dadosCalculos.dataVencimento = dataVencimento;
         dadosCalculos.valorInvestido = valorInvestido;
         dadosCalculos.taxaAdmin      = taxaAdmin;
         dadosCalculos.taxaExtra      = taxaExtra;
         dadosCalculos.taxaCompra     = taxaCompra;
         dadosCalculos.tipoTitulo     = cbTitulo.SelectedIndex;
         txtMensCalc.Visible          = true;
         Simulacao simulacao = new Simulacao();
         DataTable dataTable = simulacao.RealizarSimulacao(dadosCalculos);
         dataGridView1.DataSource          = dataTable;
         dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells;
         dataGridView1.Visible             = true;
     }
 }
예제 #23
0
        public IActionResult Create([FromBody] Simulacao simulacao)
        {
            Simulacao novaSimulacao = _simulacaoServico.Create(simulacao);

            return(Ok(novaSimulacao));
        }
예제 #24
0
 public Simulacao Save(Simulacao simulacao) =>
 _repository.Save(simulacao);
예제 #25
0
        public IActionResult CalcularSimulacao([FromQuery] SimulacaoDto simulacaoDto)
        {
            Simulacao resultadoSimulacao = _simulacaoService.Simular(simulacaoDto);

            return(Ok(resultadoSimulacao));
        }
        public Simulacao Get(decimal valor, int total)
        {
            Simulacao simulado = new Simulacao(valor, total);

            return(simulado);
        }
        public Simulacao Post(decimal ValorTotal, int QtdParcela)
        {
            Simulacao simulado = new Simulacao(ValorTotal, QtdParcela);

            return(simulado);
        }
예제 #28
0
 public SimularParcelamentoEvent(Simulacao simulacao)
 {
     Simulacao = simulacao;
 }
예제 #29
0
 public Simulacao Create(Simulacao simulacao) =>
 _simulacaoRepositorio.Create(simulacao);
예제 #30
0
 private IEnumerable <Parcela> ObterParcelas(Simulacao simulacao) =>
 Enumerable.Range(0, simulacao.Parcelas)
 .Select(x => ObterParcela(simulacao, x)).ToList();