コード例 #1
0
        static void Main(string[] args)
        {
            var pedido = new PedidoDeCompra
            {
                Valor         = 200,
                NomeDoProduto = "Tv LCD",
                TipoDeEntrega = TipoDeEntrega.Correios
            };

            var valorDoFrete = Calcular(new CorreiosFrete(), pedido);

            Console.WriteLine("O frete custará R$ {0}", valorDoFrete);
            Console.ReadKey();
        }
コード例 #2
0
        public double CalcularFrete(PedidoDeCompra pedido)
        {
            switch (pedido.TipoDeEntrega)
            {
            case TipoDeEntrega.Correios:
                return(CalcularFreteCorreios(pedido));

            case TipoDeEntrega.MotoBoy:
                return(CalcularFreteMotoboy(pedido));

            case TipoDeEntrega.RetirarNaLoja:
                return(0);

            case TipoDeEntrega.Sedex:
                return(CalcularFreteSedex(pedido));

            default:
                throw new Exception("Método de entrega não existe");
            }
        }
コード例 #3
0
 public double Calcular(PedidoDeCompra pedido)
 {
     return(pedido.Valor * 0.10);
 }
コード例 #4
0
        static double Calcular(IFrete frete, PedidoDeCompra pedido)
        {
            var calculador = new CalculadorFrete(frete);

            return(calculador.CalcularFrete(pedido));
        }
コード例 #5
0
 public double Calcular(PedidoDeCompra pedido)
 {
     return(2);
 }
コード例 #6
0
 public double CalcularFrete(PedidoDeCompra pedido)
 {
     return(frete.Calcular(pedido));
 }
コード例 #7
0
 private static double CalcularFreteCorreios(PedidoDeCompra pedido)
 {
     return(pedido.Valor * 0.10);
 }
コード例 #8
0
 private static double CalcularFreteMotoboy(PedidoDeCompra pedido)
 {
     return(2);
 }
コード例 #9
0
 private static double CalcularFreteSedex(PedidoDeCompra pedido)
 {
     return(pedido.Valor * 0.20);
 }