static void TestaRequisicao() //Chain of Responsability { var conta = new Conta("Carlos", 500); var req = new Requisicao(Formato.PORCENTO); Resposta reqporc = new RespostaEmPorcento(null); Resposta reqcsv = new RespostaEmCsv(reqporc); Resposta reqxml = new RespostaEmXml(reqcsv); //reqxml.OutraResposta = reqcsv; //reqcsv.OutraResposta = reqporc; reqxml.Responde(req, conta); }
public void Responde(Requisicao requisicao, Conta conta) { if (requisicao.Formato == Formato.PORCENTO) { Console.WriteLine($"{conta.Nome}%{conta.Saldo}"); } else if (OutraResposta == null) { OutraResposta.Responde(requisicao, conta); } else { throw new ArgumentException("Formato de resposta não encontrada"); } }
public void Responde(Requisicao req, Conta conta) { if (req.Formato == Formato.PORCENTO) { Console.WriteLine(conta.Titular + "%" + conta.Saldo); } else if (OutraResposta != null) { OutraResposta.Responde(req, conta); } else { // não existe próxima na corrente, e ninguém atendeu a requisição! // poderíamos não ter feito nada aqui, caso não fosse necessário! throw new Exception("Formato de resposta não encontrado"); } }
public void Responde(Requisicao req, Conta conta) { Console.WriteLine("Formato Não Identificado"); }
public void Chamada(Requisicao requisicao, Conta conta) { var r1 = new XML(new PontoEVirgula(new Porcento())); r1.Responde(requisicao, conta); }
public void Resultado(Requisicao req, Conta conta) { Console.WriteLine("Erro"); }