public decimal buscarCambio(List <RatesMarca> lista, string from) { // Buscamos en la lista si está el elemento con una conversion directa To="E" RatesMarca buscar = buscarEUR(lista, from); if (from == "EUR") { Console.WriteLine("Valor buscado no puede ser E"); return(valor); } if (encontrado) { // valor = valor * buscar.Rate; //Console.WriteLine("Hay busqueda directa"); //Console.WriteLine(string.Format("{0} {1} {2} {3}", buscar.From, buscar.To, buscar.Rate, valor)); //Console.ReadLine(); } else { Console.WriteLine("NO hay busqueda directa de: " + from); buscarNoEUR(lista, from); if (encontrado) { return(valor); } else { buscarCambio(lista, devolver.To); } //Console.ReadLine(); } return(valor); }
public RatesMarca buscarNoEUR(List <RatesMarca> lista, string from) { devolver = new RatesMarca { From = from, To = "EUR", Rate = -1, Marcado = "N" }; //bool Encontrado = false; foreach (RatesMarca ratio in lista) { if (ratio.From == from && ratio.Marcado != "S") { lista = marcar(lista, ratio.From, ratio.To); // marcar el mismo para no volver a pasar lista = marcar(lista, ratio.To, ratio.From); // marcar contrario para la vez siguiente valor = valor * ratio.Rate; devolver = ratio; return(ratio); } } return(devolver); }
public RatesMarca buscarEUR(List <RatesMarca> lista, string from) { RatesMarca devolver = new RatesMarca { From = "EUR", To = "EUR", Rate = -1, Marcado = "N" }; //bool Encontrado = false; foreach (RatesMarca ratio in lista) { if (ratio.From == from && ratio.To.ToUpper() == "EUR") { valor = valor * ratio.Rate; encontrado = true; devolver = ratio; return(ratio); } } return(devolver); }