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)); } } }
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)); }