public async Task <PlanesUsuariosDTO> BuscarPlanUsuario(PlanesUsuarios planUsuarioParaBuscar) { using (SportsGoEntities context = new SportsGoEntities(false)) { PlanesRepository planRepository = new PlanesRepository(context); PlanesUsuariosDTO planUsuarioExistente = await planRepository.BuscarPlanUsuario(planUsuarioParaBuscar); int?codigoUsuario = await planRepository.BuscarCodigoUsuarioPorCodigoPlanUsuario(planUsuarioExistente.Consecutivo); PagosRepository pagosRepo = new PagosRepository(context); Monedas monedaDelUsuario = await pagosRepo.BuscarMonedaDeUnUsuario(codigoUsuario.Value); if (monedaDelUsuario.MonedaEnum != MonedasEnum.PesosColombianos) { Monedas monedaColombiana = await pagosRepo.BuscarMonedaColombiana(); QueryMoneyExchanger queryExchanger = new QueryMoneyExchanger(); YahooExchangeEntity exchangeEntity = await queryExchanger.QueryMoneyExchange(monedaColombiana.AbreviaturaMoneda, monedaDelUsuario.AbreviaturaMoneda); if (exchangeEntity != null) { monedaDelUsuario.CambioMoneda = exchangeEntity.Query.Results.Rate.Rate; } planUsuarioExistente.Planes.Precio *= monedaDelUsuario.CambioMoneda; } try { // No es obligatorio para el paso que actualize el cambio de moneda await context.SaveChangesAsync(); } catch (Exception) { } return(planUsuarioExistente); } }