示例#1
0
    public static void Main()
    {
        int flag = 1;
        int x    = 0;
        int y    = 0;

        Poupanca[]    poup = new Poupanca[100];
        RendaFixa[]   inv  = new RendaFixa[100];
        AcumulaRendas cum  = new AcumulaRendas();

        while (flag != 1)
        {
            System.Console.WriteLine("Digite o tipo da conta");
            System.Console.WriteLine("1 - Poupança");
            System.Console.WriteLine("2 - Renda Fixa");
            int tipo = Convert.ToInt32(System.Console.ReadLine());
            System.Console.WriteLine("CPF?");
            string cpf = System.Console.ReadLine();
            System.Console.WriteLine("Nome?");
            string nome = System.Console.ReadLine();
            System.Console.WriteLine("Saldo?");
            double saldo = Convert.ToDouble(System.Console.ReadLine());

            System.Console.WriteLine("Rendimento desta conta em 1 ano!");

            if (tipo == 1)
            {
                poup[x] = new Poupanca(cpf, nome, saldo);
                poup[x].rendimento();
                cum.acumula(poup[x]);
                x++;
            }
            else
            {
                inv[y] = new RendaFixa(cpf, nome, saldo);
                inv[y].rendimento();
                cum.acumula(inv[y]);
                y++;
            }

            System.Console.WriteLine("Contas abertas:");
            if (tipo == 1)
            {
                Investimento.returnNumInvest();
            }
            else
            {
                Investimento.returnNumInvest();
            }

            System.Console.WriteLine("Rendimento total, 1 ano:");
            System.Console.WriteLine(cum.Total);
            System.Console.WriteLine("Para mais alguma conta, digite 1");
            flag = Convert.ToInt32(System.Console.ReadLine());
        }
    }
        /// <summary>Gera posição em Renda Fixa</summary>
        public async Task <Consolidado> GerarPosicaoRendaFixa()
        {
            Logger.LogInformation("Iniciando geração de posição em Renda Fixa");

            RendaFixa rendaFixa = null;

            await PositionService.ObterPosicaoRendaFixa().ContinueWith(o => rendaFixa = o.Result);

            return(rendaFixa.MappingRendaFixaToConsolidado());
        }
 /// <summary>
 /// Recupera o valor do resgate se for Renda Fixa
 /// </summary>
 /// <param name="renda">valor Renda Fixa</param>
 /// <param name="investments">Lista de Investimentos</param>
 public void getRendaFixaToInvestiments(RendaFixa renda, List <Investiment> investments)
 {
     foreach (var item in renda.lcis)
     {
         investments.Add(new Investiment()
         {
             nome           = item.nome,
             valorInvestido = item.capitalInvestido,
             valorTotal     = item.capitalAtual,
             vencimento     = item.vencimento,
             Ir             = getIR(item.capitalAtual, item.capitalInvestido, Aplicacao.Fundo),
             valorResgate   = calcRescue(item.dataOperacao, item.vencimento, item.capitalInvestido)
         });
     }
 }
        /// <summary>Gera posição consolidada de todos os ativos</summary>
        public async Task <Consolidado> GerarPosicaoConsolidada()
        {
            Logger.LogInformation("Iniciando geração de posição consolidada");

            TesouroDireto tesouroDireto       = null;
            RendaFixa     rendaFixa           = null;
            Fundos        fundosInvestimentos = null;

            await Task.WhenAll(
                PositionService.ObterPosicaoTesouroDireto().ContinueWith(o => tesouroDireto = o.Result),
                PositionService.ObterPosicaoRendaFixa().ContinueWith(o => rendaFixa         = o.Result),
                PositionService.ObterPosicaoFundos().ContinueWith(o => fundosInvestimentos  = o.Result)
                );

            return(fundosInvestimentos.MappingPosicoesToConsolidado(tesouroDireto, rendaFixa));
        }