Esempio n. 1
0
        public async Task SetPokemon(ushort dexId)
        {
            _logger.LogDebug($"Fetch pokemon for ID {dexId}");
            await SetNewPokemon(await _pokemonRepository.GetPokemonById(dexId));

            _logger.LogDebug($"Got Pokemon {SelectedPokemon.Name}");
        }
        public PokemonQuery(IPokemonRepository pokemonRepository)
        {
            Field <ListGraphType <PokemonType> >(
                "AllPokemons",
                resolve: context => pokemonRepository.GetPokemons()
                );

            Field <PokemonType>(
                "PokemonById",
                arguments: new QueryArguments(new QueryArgument <IntGraphType> {
                Name = "id"
            }),
                resolve: context => pokemonRepository.GetPokemonById((context.GetArgument <int>("id")))
                );

            Field <PaginationType>(
                "PokemonPagination",
                arguments: new QueryArguments(
                    new QueryArgument <IntGraphType> {
                Name = "first", DefaultValue = 0
            },
                    new QueryArgument <IntGraphType> {
                Name = "after", DefaultValue = 0
            },
                    new QueryArgument <IntGraphType> {
                Name = "countPerPage", DefaultValue = 0
            },
                    new QueryArgument <IntGraphType> {
                Name = "currentPage", DefaultValue = 0
            },
                    new QueryArgument <StringGraphType> {
                Name = "sortBy"
            }
                    ),
                resolve: context =>
            {
                int totalCount;
                int totalPage;
                var temp = context.GetArgument <int>("countPerPage");
                using (var ctx = new PokemonContext())
                {
                    totalCount = ctx.PokemonData.Count();
                    if (context.GetArgument <int>("countPerPage") != 0 && context.GetArgument <int>("first") != 0)
                    {
                        totalPage = (int)Math.Ceiling((double)context.GetArgument <int>("first") / temp);
                    }
                    else if (context.GetArgument <int>("countPerPage") != 0)
                    {
                        totalPage = (int)Math.Ceiling((double)ctx.PokemonData.Count() / temp);
                    }
                    else
                    {
                        totalPage = 0;
                    }
                }
                return(new Pagination(totalCount, context.GetArgument <int>("first"), context.GetArgument <int>("after"), context.GetArgument <int>("countPerPage"), context.GetArgument <int>("currentPage"), totalPage, context.GetArgument <string>("sortBy")));
            }
                );
        }
Esempio n. 3
0
        public async override Task OnNavigatedTo(NavigationEventArgs e)
        {
            var dexId = (ushort)e.Parameter;

            await SetNewPokemon(await _pokemonRepository.GetPokemonById(dexId));
        }