public decimal CalcularDescontoPara(Pedido pedido)
        {
            var desconto = 0m;
            foreach (var item in pedido.Itens)
            {
                var fatorDesconto = 0m;
                var totalItem = item.Quantidade * item.ValorUnitario;

                if (item.ValorUnitario < 100)
                    fatorDesconto = 0.03m;
                else if (item.ValorUnitario < 1000)
                {
                    fatorDesconto = 0.1m;
                    if (item.Quantidade > 2)
                        fatorDesconto = 0.15m;
                }
                else
                {
                    fatorDesconto = 0.1m;
                }

                desconto += totalItem * fatorDesconto;
            }

            return desconto;
        }
Exemplo n.º 2
0
        static void Main(string[] args)
        {
            var pedido = new Pedido();

            pedido.Add(new ItemPedido { Produto = "notebook", Quantidade = 1, ValorUnitario = 1500m });
            pedido.Add(new ItemPedido { Produto = "teclado", Quantidade = 5, ValorUnitario = 75.5m });
            pedido.Add(new ItemPedido { Produto = "monitor lcd", Quantidade = 20, ValorUnitario = 545m });

            Console.WriteLine("Total do Pedido: {0}", pedido.TotalDoPedido().ToString("C"));

            var desconto = RubyEngineCreator
                .GetRubyObject("calculador_descontos", "CalculadorDescontosRuby")
                .CalcularDescontoPara(pedido);

            Console.WriteLine("Total Desconto: {0}", desconto.ToString("C"));

            Console.ReadKey();
        }