示例#1
0
        public IActionResult SimularNegociacao(SimularNegociacaoViewModel simularNegociacaoVM)
        {
            NegociacaoSimuladaViewModel negociacaoSimuladaVM = null;

            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri("https://localhost:44398/api/negociacaoapi/");
                //HTTP GET
                var postTask = client.PostAsync("simularnegociacao", new StringContent(JsonConvert.SerializeObject(simularNegociacaoVM), Encoding.UTF8, "application/json"));
                postTask.Wait();

                var result = postTask.Result;
                if (result.IsSuccessStatusCode)
                {
                    var readTask = result.Content.ReadAsStringAsync();
                    readTask.Wait();

                    negociacaoSimuladaVM = JsonConvert.DeserializeObject <NegociacaoSimuladaViewModel>(readTask.Result);

                    TempData["negociacaoSimuladaVM"] = JsonConvert.SerializeObject(negociacaoSimuladaVM);
                    return(RedirectToAction("ConfirmarNegociacao"));
                }
                else
                {
                    ModelState.AddModelError(string.Empty, MSG_ERRO);
                    return(View(simularNegociacaoVM));
                }
            }
        }
示例#2
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));
        }