Esempio n. 1
0
        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);
            }
        }