예제 #1
0
        private void onTickerEventCallback(PushMessageBase message)
        {
            if (!(message is TickerMessage ticker))
            {
                return;
            }

            CurrencyViewEntity currency = viewModel.MarketTabs.SelectMany(market => market.Currencies).SingleOrDefault(c => c.Id == ticker.Id);

            if (currency != null)
            {
                asyncService.RunUiContext(async() => {
                    double oldChange = currency.Price;
                    double newChange = ticker.Last;

                    mapper.Map(message, currency);

                    if (oldChange.EqualInPercentRange(newChange))
                    {
                        return;
                    }

                    if (newChange < oldChange)
                    {
                        currency.IsChangeDown = true;
                    }
                    else if (newChange > oldChange)
                    {
                        currency.IsChangeUp = true;
                    }

                    await Task.Delay(TimeSpan.FromMilliseconds(500));

                    if (newChange < oldChange)
                    {
                        currency.IsChangeDown = false;
                    }
                    else if (newChange > oldChange)
                    {
                        currency.IsChangeUp = false;
                    }
                }).FireAndForget();
            }
        }
예제 #2
0
        private void onAppLoaded(AppLoadedMessage message)
        {
            settings = message.Settings;

            MarketTabViewModel market = viewModel.MarketTabs.SingleOrDefault(m => m.Name == settings.SelectedMarket);

            if (market != null)
            {
                market.IsSelected = true;
            }
            else
            {
                viewModel.MarketTabs[0].IsSelected = true;
            }

            List <CurrencyViewEntity> currencyEntities = viewModel.MarketTabs.SelectMany(m => m.Currencies).ToList();

            CurrencyViewEntity cve = currencyEntities.SingleOrDefault(currency => currency.Id == settings.SelectedCurrency);

            if (cve != null)
            {
                cve.IsSelected = true;
            }
            else
            {
                if (viewModel.ShowFavorites)
                {
                    cve = currencyEntities.FirstOrDefault(currency => currency.IsFavorite);
                }

                if (cve == null)
                {
                    viewModel.MarketTabs[0].Currencies[0].IsSelected = true;
                }
            }

            currencyEntities.ForEach(currency => currency.IsFavorite = settings.Favorites.Contains(currency.Id));

            viewModel.ShowFavorites = settings.ShowFavorites;
        }