private Movimento NovoLancamento(int quantidade, AtivoFinanceiro ativo, decimal valorUnitario, DateTime?data, decimal taxas, Movimento.Enum tipo)
        {
            var lancamento = new Movimento {
                AtivoFinanceiro = ativo, Data = data ?? DateTime.UtcNow, Quantidade = quantidade, Taxas = taxas, TipoMovimento = tipo, PrecoUnitario = valorUnitario
            };

            return(Movimentar(lancamento));
        }
        internal static AtivoFinanceiro Empty(long id)
        {
            var ativo = _empties.FirstOrDefault(a => a.Id == id);

            if (ativo == null)
            {
                _empties.Add(ativo = new AtivoFinanceiro(id));
            }

            return(ativo);
        }
 public Estatistica(AtivoFinanceiro ativoFinanceiro, IEnumerable <Movimento> lancamentos)
 {
     AtivoFinanceiro = ativoFinanceiro;
     Lancamentos     = lancamentos;
 }
 public Movimento Rentabilizar(int quantidade, AtivoFinanceiro ativo, decimal valorUnitario, DateTime?data, decimal taxas = 0.0M)
 {
     return(NovoLancamento(quantidade, ativo, valorUnitario, data, taxas, Movimento.Enum.Rendimento));
 }
 public Movimento Vender(int quantidade, AtivoFinanceiro ativo, decimal valorUnitario, DateTime?data, decimal taxas = 0.0M)
 {
     return(NovoLancamento(-quantidade, ativo, valorUnitario, data, taxas, Movimento.Enum.Venda));
 }