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; }
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(); }