Exemplo n.º 1
0
        /// <summary>
        /// Executa o cálculo para o item informado.
        /// </summary>
        /// <param name="item">Item sobre o qual será calculada a rentabilidade.</param>
        protected virtual Data.ICalculoRentabilidadeResultado Calcular(IItemRentabilidade item)
        {
            var calculadora = ProvedorCalculadoraRentabilidade.Calculadora;

            var container = item as IItemRentabilidadeContainer;

            var subResultados = new List <Data.ICalculoRentabilidadeResultado>();

            // Caso o itens possua outras itens filhos,
            // os mesmos deve ser calculados
            if (container != null)
            {
                foreach (var i in container.Itens)
                {
                    subResultados.Add(Calcular(i));
                }
            }

            // Executa o calculo da rentabilidae
            var resultadoCalculo = calculadora.Calcular(item);

            item.LimparRegistros();
            resultadoCalculo.AplicarResultado();

            return(CriaResultado(item, resultadoCalculo, subResultados));
        }