/// <summary> /// Cria uma nova instância de <see cref="Operacao"/>. /// </summary> /// <param name="fabricaDeParcela">Fábrica de parcelas.</param> /// <param name="tipoDeOperacao">Tipo de operação financeira.</param> /// <param name="dataDaOperacao">Data da operação.</param> /// <param name="taxaDeIof">Taxa de IOF.</param> /// <param name="taxaDeJuros">Taxa de Juros.</param> /// <param name="parcelas">Parcelas da operação.</param> public Operacao(IFabricaDeParcela fabricaDeParcela, TipoDeOperacaoFinanceira tipoDeOperacao, DateTime dataDaOperacao, decimal taxaDeIof, decimal taxaDeJuros, ICollection <IParcela> parcelas) { _fabricaDeParcela = fabricaDeParcela; Parcelas = parcelas; TipoDeOperacao = tipoDeOperacao; DataDaOperacao = dataDaOperacao; TaxaDeIof = taxaDeIof; TaxaDeJuros = taxaDeJuros; }
/// <summary> /// Cria uma nova instância de <see cref="Operacao"/>. /// </summary> /// <param name="fabricaDeParcela">Fábrica de parcelas.</param> /// <param name="tipoDeOperacao">Tipo de operação financeira.</param> /// <param name="dataDaOperacao">Data da operação.</param> /// <param name="taxaDeIof">Taxa de IOF.</param> public Operacao(IFabricaDeParcela fabricaDeParcela, TipoDeOperacaoFinanceira tipoDeOperacao, DateTime dataDaOperacao, decimal taxaDeIof, decimal taxaDeJuros) : this(fabricaDeParcela, tipoDeOperacao, dataDaOperacao, taxaDeIof, taxaDeJuros, fabricaDeParcela.CriarColecaoVaziaDeParcelas()) { }
/// <summary> /// Cria uma nova instância de <see cref="FabricaDeOperacao"/>. /// </summary> /// <param name="fabricaDeImpostos">Fábrica de impostos incidentes na operação.</param> /// <param name="fabricaDeCalculosFinanceiros">Objeto responsável por criar os cálculos financeiros que serão aplicados a parcela.</param> public FabricaDeOperacao(IFabricaDeImpostos fabricaDeImpostos, IFabricaDeCalculosFinanceiros fabricaDeCalculosFinanceiros) { _fabricaDeParcela = new FabricaDeParcela(fabricaDeImpostos, fabricaDeCalculosFinanceiros); }