Пример #1
0
        public void Resolve(GraphQLQuery graphQLQuery)
        {
            graphQLQuery.FieldAsync <ResponseGraphType <RoundType> >(
                "round",
                arguments: new QueryArguments(
                    new QueryArgument <NonNullGraphType <StringGraphType> > {
                Name = "roundId"
            }
                    ),
                resolve: async context =>
            {
                var id            = context.GetArgument <Guid>("roundId");
                var roundFromRepo = await _playerRepository.GetRoundById(id);
                var roundToReturn = Mapper.Map <RoundDto>(roundFromRepo);
                return(Response(roundToReturn));
            });

            graphQLQuery.FieldAsync <ResponseListGraphType <RoundType> >(
                "rounds",
                resolve: async context =>
            {
                var roundsFromRepo = await _playerRepository.GetAllRoundsAsync();
                var roundsToReturn = Mapper.Map <IEnumerable <RoundDto> >(roundsFromRepo);
                return(Response(roundsToReturn));
            });

            graphQLQuery.FieldAsync <ResponseGraphType <RoundType> >(
                "createRound",
                arguments: new QueryArguments(
                    new QueryArgument <NonNullGraphType <RoundInputType> > {
                Name = "round"
            }
                    ),
                resolve: async context =>
            {
                var round         = context.GetArgument <RoundForCreationDto>("round");
                var roundEntity   = Mapper.Map <Round>(round);
                var addedRound    = await _playerRepository.AddRoundAsync(roundEntity);
                var roundToReturn = Mapper.Map <RoundDto>(addedRound);
                return(Response(roundToReturn));
            });
        }