Esempio n. 1
0
        private void InitWindow()
        {
            switch (InputMode)
            {
            case InputMode.ByCard:
            {
                Cards.Clear();
                Cards.AddRange(_allCardSorted.Keys);

                Editions.Clear();
                EditionSelected  = null;
                CardSelectedName = null;
                break;
            }

            case InputMode.ByEdition:
            {
                Cards.Clear();

                IEdition save = EditionSelected;
                Editions.Clear();
                Editions.AddRange(_allEditions);

                CardSelectedName = null;
                EditionSelected  = save;
                break;
            }

            case InputMode.None:

                Cards.Clear();
                Editions.Clear();
                EditionSelected  = null;
                CardSelectedName = null;
                break;
            }

            Languages.Clear();
            CurrentCollectionDetail = null;
            LanguageSelected        = null;
            Count    = _defaultQuantity;
            IsFoil   = false;
            IsAltArt = false;
            ResetFocus();
        }
Esempio n. 2
0
        /// <summary>
        /// 获取筛选版本列表
        /// </summary>
        /// <returns></returns>
        public async Task GetAllEditions()
        {
            if (Editions.Count > 0)
            {
                return;
            }

            await WebRequest.Execute(() => editionAppService.GetEditions(),
                                     async result =>
            {
                Editions.Clear();
                foreach (var item in Map <List <EditionListModel> >(result.Items))
                {
                    Editions.Add(item);
                }

                await Task.CompletedTask;
            });
        }
        async Task ExecuteLoadEditionsCommand()
        {
            try
            {
                Editions.Clear();
                var editions = await dataStore.GetEditionsAsync(true);

                Editions.AddRange(editions);
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex);
                analytics.TrackError(ex);
            }
            finally
            {
                IsBusy = false;
            }
        }
Esempio n. 4
0
        async Task ExecuteLoadEditionsCommand()
        {
            IsBusy = true;

            try
            {
                Editions.Clear();
                var editions = await DataStore.GetEditionsAsync(true);

                foreach (var item in editions)
                {
                    Editions.Add(item);
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex);
            }
            finally
            {
                IsBusy = false;
            }
        }
Esempio n. 5
0
        private void RefreshDisplayedData(InputMode modifyData)
        {
            UpdateCurrentCollectionDetailAndTranslate();

            //None one the key changed, nothing to recompute
            if (modifyData == InputMode.None)
            {
                return;
            }

            //Change one of the key but no the reference one
            if (InputMode != modifyData)
            {
                Languages.Clear();
                IEdition editionSelected  = EditionSelected;
                ICard    cardNameSelected = _cardSelected;
                if (editionSelected == null || cardNameSelected == null)
                {
                    return;
                }

                ICardAllDbInfo cardAllDbInfo = _allCardInfos.First(cadi => cadi.Edition == editionSelected && cadi.Card == cardNameSelected);
                if (cardAllDbInfo == null)
                {
                    return;
                }

                foreach (ILanguage language in _magicDatabase.GetLanguages(cardAllDbInfo.IdGatherer))
                {
                    Languages.Add(language);
                }

                if (Languages.Count > 0)
                {
                    if (_inputLanguage != null && Languages.Contains(_inputLanguage))
                    {
                        LanguageSelected = _inputLanguage;
                    }
                    else
                    {
                        LanguageSelected = Languages[0];
                    }
                }
            }
            else
            {
                //Change the reference
                switch (InputMode)
                {
                case InputMode.ByEdition:

                    IEdition editionSelected = EditionSelected;
                    Cards.Clear();
                    Languages.Clear();
                    if (editionSelected == null)
                    {
                        return;
                    }

                    List <string> sorted = new List <string>();
                    //Could not call directly GetAllCardsOrderByTranslation because the key must be the same as in all card even if there is no duplicate traduction in the subset
                    foreach (KeyValuePair <string, ICard> kv in _allCardInfos.Where(cadi => cadi.Edition == editionSelected).GetAllCardWithTranslation(_inputLanguage))
                    {
                        //Normal case
                        if (_allCardSorted.ContainsKey(kv.Key))
                        {
                            sorted.Add(kv.Key);
                        }
                        else
                        {
                            //Key was changed because of duplicate traduction, we need to look for the card
                            sorted.Add(_allCardSorted.First(acsKv => kv.Value == acsKv.Value).Key);
                        }
                    }
                    sorted.Sort();
                    Cards.AddRange(sorted);
                    break;

                case InputMode.ByCard:

                    ICard cardNameSelected = _cardSelected;
                    Editions.Clear();
                    Languages.Clear();
                    if (cardNameSelected == null)
                    {
                        return;
                    }

                    foreach (IEdition edition in _allCardInfos.GetAllEditionIncludingCardOrdered(cardNameSelected))
                    {
                        Editions.Add(edition);
                    }

                    if (Editions.Count > 0)
                    {
                        EditionSelected = Editions[0];
                    }

                    break;
                }
            }
        }