private Proposta NovaProposta(PropostaViewModel prop, RetornoCalculo calculo, SimuladorPrevidenciaDB contexto)
        {
            var cliente = contexto.Clientes.Find(prop.IdCliente);
            var perfil = contexto.Perfis.Find(prop.Perfil);

            var proposta = new Proposta{
                Aprovada = false,
                Cliente = cliente,
                InvestimentoInicial = prop.InvestimentoIncial,
                InvestimentoMensal = prop.InvestimentoMensal,
                Perfil = perfil,
                RendaEsperadaMes = prop.RendaEsperadaMes,
                TempoInvestimento = prop.TempoInvestimento,
                PrazoRecebimento = calculo.TotalMeses,
                TempoRecebimento = prop.TempoRecebimento,
                TipoRetornoEsperado = prop.TipoRetornoEsperado
            };

            contexto.Propostas.Add(proposta);
            contexto.SaveChanges();

            return proposta;
        }
        private Proposta GravarProposta(PropostaViewModel prop, RetornoCalculo calculo)
        {
            var contexto = new SimuladorPrevidenciaDB();

            var proposta = contexto.Propostas.Find(prop.Id);

            if (proposta == null)
            {
                return NovaProposta(prop, calculo, contexto);
            }

            var perfil = contexto.Perfis.Find(prop.Perfil);

            proposta.Aprovada = false;
            proposta.InvestimentoInicial = prop.InvestimentoIncial;
            proposta.InvestimentoMensal = prop.InvestimentoMensal;
            proposta.Perfil = perfil;
            proposta.RendaEsperadaMes = prop.RendaEsperadaMes;
            proposta.TempoInvestimento = prop.TempoInvestimento;
            proposta.PrazoRecebimento = calculo.TotalMeses;
            proposta.TempoRecebimento = prop.TempoRecebimento;
            proposta.TipoRetornoEsperado = prop.TipoRetornoEsperado;

            db.Entry(proposta).State = EntityState.Modified;
            contexto.SaveChanges();

            return proposta;
        }