コード例 #1
0
        public static void RealizaCalculo(Orcamento orcamento, IImposto imposto)
        {
            //CalculadoraDeImpostos apenas exibe um mensagem na tela, ela não é necessária.
            //Mas agora imagine que, além de calcular o imposto,
            //essa classe precisasse fazer mais alguma coisa,
            //como por exemplo, alterar o status do Orçamento, ou notificar algum outro objeto desse valor calculado.
            var valor = imposto.Calcula(orcamento);

            Console.Write(imposto.GetType().Name + ": ");
            Console.WriteLine(valor);
        }
コード例 #2
0
        public NotaFiscal Gera(Fatura fatura, IImposto imposto)
        {
            double valor        = fatura.ValorMensal;
            double valorImposto = imposto.Calcula(fatura);

            var notaFiscal = new NotaFiscal(valor, valorImposto);

            ExecutaAcaoNota(notaFiscal);

            return(notaFiscal);
        }
コード例 #3
0
        public double CalcularValorTotal(Cliente cliente)
        {
            double total = _itensPedido.Sum((item) => {
                return(item.Valor * item.Quantidade);
            });

            double taxas;
            // context
            IImposto imposto = _fabricaImposto.GetInstance();

            taxas = imposto.CalcularTaxas(cliente, total);
            total = total + taxas;
            return(total);
        }
コード例 #4
0
        public double CalcularValorTotal(Cliente cliente)
        {
            double total = _itensPedido.Sum((item) => {
                return(item.Valor * item.Quantidade);
            });

            double taxas;
            // dependência concreta, fábrica de imposto
            // inverter a dependência ?
            IImposto imposto = _fabricaImposto.GetInstance();

            taxas = imposto.CalcularTaxas(cliente, total);
            total = total + taxas;
            return(total);
        }
コード例 #5
0
        static public void MostraInformações(ItemNoEstoque item, IImposto imposto)
        {
            WriteLine("================================");

            WriteLine($"O valor do item sem impostos: ${item.Valor}");
            var valorDoCalculo = imposto.Calcular(item);

            if (valorDoCalculo != -1)
            {
                WriteLine($"Imposto a se pagar: {valorDoCalculo}");
                WriteLine($"O valor do item com impostos: ${item.Valor}");
            }
            else
            {
                WriteLine($"Este produto esta issento de tributação");
            }

            WriteLine("================================");
        }
コード例 #6
0
        /// <summary>
        /// Método que independe do imposto para calcular o valor do mesmo.
        /// </summary>
        /// <param name="orcamento">Classe que representa o orçamento.</param>
        /// <param name="imposto">Interface que representa todos os impostos.</param>
        public void RealizaCalculo(Orcamento orcamento, IImposto imposto)
        {
            #region Smell Bad - CÓDIGO PROBLEMÁTICO

            /*
             * if ("ICMS".Equals(imposto))
             * {
             *  //double icms = orcamento.Valor * 0.1;      //CODIGO PROBLEMÁTICO
             *  double icms = new ICMS().CalculaICMS(orcamento);
             *  Console.WriteLine(icms);
             * }
             * else if("ISS".Equals(imposto))
             * {
             *  //double iss = orcamento.Valor * 0.06;      //CODIGO PROBLEMÁTICO
             *  double iss = new ISS().CalculaISS(orcamento);
             *  Console.WriteLine(iss);
             * }*/
            #endregion

            Console.WriteLine(imposto.Calcula(orcamento));
        }
コード例 #7
0
 public ImpostoMuitoAlto(IImposto outroImposto) : base(outroImposto)
 {
 }
 public TemplateDeImpostoCondicional(IImposto outroImposto)
     : base(outroImposto)
 {
 }
コード例 #9
0
        // Passar a interface como parâmetro
        // Com este método genérico por mais que se crie vários outros impostos não precisamos mexer no Calculador de Impostos
        public void RealizaCalculo(Orcamento orcamento, IImposto imposto)
        {
            double resultado = imposto.Calcula(orcamento);

            Console.WriteLine(resultado);
        }
コード例 #10
0
 public Imposto()
 {
     this.OutroImposto = null;
 }
コード例 #11
0
 public ICPP(IImposto outroImposto)
     : base(outroImposto)
 {
 }
コード例 #12
0
 public TemplateDeImpostoCondicional(IImposto outroImposto) : base(outroImposto)
 {
 }
コード例 #13
0
 public double RealizarCalculo(Orcamento orcamento, IImposto imposto)
 {
     return(imposto.Calcular(orcamento));
 }
コード例 #14
0
ファイル: Icms.cs プロジェクト: AndreLotusDev/DesignPattherns
 public Icms(IImposto outroImposto) : base(outroImposto)
 {
     TaxaPadrao += _TAXA;
 }
コード例 #15
0
 //no construtor eu carrego quem vai ser o imposto que vou chamar
 public CalculadorDeImpostos(IImposto _imposto)
 {
     this.imposto = _imposto;
 }
コード例 #16
0
 public Salario Desconta(IImposto desconto)
 {
     SalarioAtual -= desconto.Calcula(SalarioAtual);
     return(this);
 }
コード例 #17
0
 public double RealizarCalculo(IImposto imposto)
 {
     return(imposto.Calcular(_orcamento.Valor));
 }
コード例 #18
0
 public ICMS(IImposto outroImposto)
     : base(outroImposto)
 {
 }
コード例 #19
0
 public void RealizaCalculo(Orcamento orcamento, IImposto imposto)
 {
     var calculo = imposto.Calcula(orcamento);
     Console.WriteLine("PadroesDeProjetos.Strategy: " + calculo);
 }
コード例 #20
0
        public void RealizaCalculo(Orcamento orcamento, IImposto imposto)
        {
            double resultado = imposto.Calcula(orcamento);

            Console.WriteLine(resultado);
        }
コード例 #21
0
        public static void RealizaCalculo(Orcamento orcamento, IImposto imposto)
        {
            var valor = imposto.CalcularImposto(orcamento);

            Console.WriteLine($"O imposto do orçamento é : {valor}");
        }
コード例 #22
0
 public CalculadorDeImposto(Orcamento orcamento, IImposto imposto)
 {
     _orcamento = orcamento;
     _imposto   = imposto;
 }
コード例 #23
0
 public decimal CalcularImpostos(Pedido pedido, IImposto imposto)
 {
     return(imposto.Calcular(pedido));
 }
コード例 #24
0
        public decimal Calcular(Orcamento orcamento, IImposto imposto)
        {
            decimal resultado = imposto.Calcular(orcamento);

            return(resultado);
        }
コード例 #25
0
 public double RealizaCalculoImposto(double orcamento, IImposto imposto)
 {
     return(imposto.Calcular(orcamento));
 }
コード例 #26
0
 public double CalculaImposto(Orcamento orcamento, IImposto imposto)
 {
     return(imposto.Calcular(orcamento));
 }
コード例 #27
0
ファイル: CalculadorDeImposto.cs プロジェクト: Calkines/Alura
 public double CalcularImpostos(Orcamento orcamento, IImposto Imposto)
 {
     return(Imposto.Calcular(orcamento));
 }
コード例 #28
0
 public Alfandega(IImposto outroImposto) : base(outroImposto)
 {
     TaxaPadrao += _TAXA;
 }
コード例 #29
0
        public void RealizarCalculo(Orcamento orcamento, IImposto imposto)
        {
            var valor = imposto.Calcular(orcamento);

            Console.WriteLine(valor);
        }
コード例 #30
0
 public IHIT(IImposto outroImposto) : base(outroImposto)
 {
 }
コード例 #31
0
ファイル: ICPP.cs プロジェクト: jefferosa/Alura
 public ICPP(IImposto outroImposto) : base(outroImposto)
 {
 }
コード例 #32
0
 public Imposto(IImposto outroImposto)
 {
     this.OutroImposto = outroImposto;
 }
コード例 #33
0
 public ConditionalTaxTemplate(IImposto outroImposto) : base(outroImposto)
 {
 }
コード例 #34
0
        public void RealizaCalculo(Orcamento orcamento, IImposto imposto)
        {
            double valor = imposto.Calcula(orcamento);

            Console.WriteLine(valor);
        }
コード例 #35
0
 public double Calcular(double valor, IImposto imposto)
 {
     return(imposto.Calcular(valor));
 }
コード例 #36
0
 public ICCC(IImposto outroImposto)
     : base(outroImposto)
 {
 }
コード例 #37
0
 public ImpostoMuitoAlto(IImposto outroImposto)
     : base(outroImposto)
 {
 }