コード例 #1
0
        private void ShowSortingPanel_Click(object sender, RoutedEventArgs e)
        {
            SortingMenuOverlayControl sortingMenu = new SortingMenuOverlayControl();

            sortingMenu.SortingmodeSelected += ((mode) => { SortingMode = mode; });
            sortingMenu.Show();
        }
コード例 #2
0
        /// <summary>
        ///     Returns a new ObservableCollection of the pokemonInventory sorted by the sortingMode
        /// </summary>
        /// <param name="pokemonInventory">Original inventory</param>
        /// <param name="sortingMode">Sorting Mode</param>
        /// <returns>A new ObservableCollection of the pokemonInventory sorted by the sortingMode</returns>
        private static IEnumerable <PokemonDataWrapper> GetSortedPokemonCollection(
            IEnumerable <PokemonDataWrapper> pokemonInventory, PokemonSortingModes sortingMode)
        {
            switch (sortingMode)
            {
            case PokemonSortingModes.Date:
                return(pokemonInventory.OrderByDescending(pokemon => pokemon.CreationTimeMs));

            case PokemonSortingModes.Fav:
                return(pokemonInventory.OrderByDescending(pokemon => pokemon.Favorite)
                       .ThenByDescending(pokemon => pokemon.Cp));

            case PokemonSortingModes.Number:
                return(pokemonInventory.OrderBy(pokemon => pokemon.PokemonId)
                       .ThenByDescending(pokemon => pokemon.Cp));

            case PokemonSortingModes.Health:
                return(pokemonInventory.OrderByDescending(pokemon => pokemon.Stamina)
                       .ThenByDescending(pokemon => pokemon.Cp));

            case PokemonSortingModes.Name:
                return(pokemonInventory.OrderBy(pokemon => Resources.Pokemon.GetString(pokemon.PokemonId.ToString()))
                       .ThenByDescending(pokemon => pokemon.Cp));

            case PokemonSortingModes.Combat:
                return(pokemonInventory.OrderByDescending(pokemon => pokemon.Cp)
                       .ThenBy(pokemon => Resources.Pokemon.GetString(pokemon.PokemonId.ToString())));

            default:
                throw new ArgumentOutOfRangeException(nameof(CurrentPokemonSortingMode), sortingMode, null);
            }
        }
コード例 #3
0
        public void Load(ulong selectedPokemonId, PokemonSortingModes sortingMode, PokemonDetailPageViewMode viewMode)
        {
            PokemonInventory.Clear();
            SortingMode = sortingMode;
            ViewMode    = viewMode;
            if (viewMode == PokemonDetailPageViewMode.Normal)
            {
                // Navigating from inventory page so we need to load the pokemoninventory and the current pokemon
                PokemonInventory.AddRange(GameClient.PokemonsInventory.Select(pokemonData => new PokemonDataWrapper(pokemonData)).SortBySortingmode(sortingMode));
                SelectedPokemon = PokemonInventory.FirstOrDefault(pokemon => pokemon.Id == selectedPokemonId);
            }
            else
            {
                // Navigating from Capture, Egg hatch or evolve, only show this pokemon
                PokemonInventory.Add(GameClient.PokemonsInventory.Where(pokemon => pokemon.Id == selectedPokemonId).Select(pokemonData => new PokemonDataWrapper(pokemonData)).FirstOrDefault());
                SelectedPokemon = PokemonInventory.First();
            }

            StardustAmount  = GameClient.PlayerProfile.Currencies.FirstOrDefault(item => item.Name.Equals("STARDUST")).Amount;
            PlayerTeamIsSet = GameClient.PlayerProfile.Team != TeamColor.Neutral;
        }
コード例 #4
0
        /// <summary>
        /// Sorts the IEnumerable with the sortingmode passed
        /// </summary>
        /// <param name="container"></param>
        /// <param name="sortingMode"></param>
        /// <returns></returns>
        public static IEnumerable <PokemonDataWrapper> SortBySortingmode(this IEnumerable <PokemonDataWrapper> container, PokemonSortingModes sortingMode)
        {
            switch (sortingMode)
            {
            case PokemonSortingModes.Date:
                return(container.SortByDate());

            case PokemonSortingModes.Fav:
                return(container.SortByFav());

            case PokemonSortingModes.Number:
                return(container.SortByNumber());

            case PokemonSortingModes.Health:
                return(container.SortByHealth());

            case PokemonSortingModes.Name:
                return(container.SortByName());

            case PokemonSortingModes.Combat:
                return(container.SortByCp());

            default:
                throw new ArgumentOutOfRangeException(nameof(sortingMode), sortingMode, null);
            }
        }