public double?ConvertTo(double Value, IExchange exchange) { var key = exchange.CurrentUnit + "-" + exchange.TargetUnit; var rate = _cache.Get(key); double?result = null; // Se mantiene condicional if (rate != null) { _console.Write("Se encontro la tasa en el cache" + rate); result = Value * double.Parse(rate); } else { _console.Write("No se encontro la tasa en el cache entonces la voy a buscar en internet"); string rateFromProvider; try { rateFromProvider = exchange.GetConversionRate(); // _http.Get("http://www.openexchangerates.com/?currencies="+key+"&value="+Value); // constante para todos los convert double conversionRate; var isNumber = double.TryParse(rateFromProvider, out conversionRate); if (isNumber) { _cache.Set(key, rateFromProvider); result = Value * conversionRate; return(result); } } catch (THTTPException e) { _console.Write(e.Message); } } return(result); }