public IElementoConvertido Converter(IElementoEntradaConversao entradaConversao) { ConversorMedidasDeComprimentoEntrada entradaConvertida = ValidarEObterEntrada(entradaConversao); string descricao = ObterDescricaoConversao(entradaConvertida); var valor = entradaConvertida.Valor * Math.Pow(10, entradaConvertida.De - entradaConvertida.Para); return(new ConversorMedidasDeComprimentoSaida(valor, descricao)); }
private static ConversorMedidasDeComprimentoEntrada ValidarEObterEntrada(IElementoEntradaConversao entradaConversao) { var valores = Enum.GetValues(typeof(TipoMedida)).Cast <TipoMedida>(); if (!(entradaConversao is ConversorMedidasDeComprimentoEntrada entradaConvertida) || !valores.Contains(entradaConvertida.De) || !valores.Contains(entradaConvertida.Para)) { throw new ArgumentException("Entrada não é válida para o método"); } return(entradaConvertida); }