private void ShowSortingPanel_Click(object sender, RoutedEventArgs e) { SortingMenuOverlayControl sortingMenu = new SortingMenuOverlayControl(); sortingMenu.SortingmodeSelected += ((mode) => { SortingMode = mode; }); sortingMenu.Show(); }
/// <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); } }
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; }
/// <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); } }