public ICalculaDescontoStatusConta GetCalculaDescontoStatusConta(EStatusContaCliente statusContaClientes) { ICalculaDescontoStatusConta calcular; switch (statusContaClientes) { case EStatusContaCliente.NaoRegistrado: calcular = new ClienteNaoRegistrado(); break; case EStatusContaCliente.ClienteComum: calcular = new ClienteComum(); break; case EStatusContaCliente.ClienteEsprecial: calcular = new ClienteEspecial(); break; case EStatusContaCliente.ClienteVIP: calcular = new ClienteVIP(); break; default: throw new NotImplementedException(); } return(calcular); }
public decimal AplicardescontoPorFidelidadeonto(decimal precoProduto, EStatusContaCliente statusContaCliente, int tempoDeContaEmAnos) { decimal precoAposdesconto = 0; precoAposdesconto = _descontoStatusConta .GetCalculaDescontoStatusConta(statusContaCliente) .AplicarDescontoStatusConta(precoProduto); precoAposdesconto = _calculaDescontoFidelidade .AplicarDescontoFidelidade(precoAposdesconto, tempoDeContaEmAnos); return(precoAposdesconto); }