public PessoaMutation(MeetupGraphQLNetContext context) { Name = nameof(PessoaMutation); Field <PessoaType>( "create", description: "Criar um novo registro de pessoa", arguments: new QueryArguments( new QueryArgument <NonNullGraphType <PessoaInputType> > { Name = "pessoa" } ), resolve: ctx => { var pessoa = ctx.GetArgument <Pessoa>("pessoa"); context.Pessoas.Add(pessoa); context.SaveChanges(); return(pessoa); }); Field <PessoaType>( "update", description: "Atualizar um registro de pessoa", arguments: new QueryArguments( new QueryArgument <NonNullGraphType <PessoaInputType> > { Name = "pessoa" } ), resolve: ctx => { var pessoa = ctx.GetArgument <Pessoa>("pessoa"); context.Pessoas.Update(pessoa); context.SaveChanges(); return(pessoa); }); Field <StringGraphType>( "delete", description: "Excluir um registro de pessoa", arguments: new QueryArguments( new QueryArgument <NonNullGraphType <IntGraphType> > { Name = "id" } ), resolve: ctx => { var id = ctx.GetArgument <int>("id"); var pessoa = context.Pessoas.Find(id); context.Pessoas.Remove(pessoa); context.SaveChanges(); return($"O registro {id} foi excluído com sucesso!."); }); }
public PessoaQuery(MeetupGraphQLNetContext context) { Name = nameof(PessoaQuery); Field <PessoaType>( "byId", description: "Obter pessoa pelo id", arguments: new QueryArguments(new QueryArgument <IdGraphType> { Name = "id", Description = "Id" }), resolve: ctx => context.Pessoas.Find(ctx.GetArgument <int>("id"))); Field <ListGraphType <PessoaType> >( "all", description: "Obter os registros de pessoa", arguments: new QueryArguments(new QueryArgument <IntGraphType> { Name = "index", DefaultValue = 0, Description = "Índice da página" }, new QueryArgument <IntGraphType> { Name = "size", DefaultValue = 30, Description = "Tamanho da página" }, new QueryArgument <StringGraphType> { Name = "name", DefaultValue = "", Description = "Palavra de pesquisa" }), resolve: ctx => context.Pessoas .Take(ctx.GetArgument <int>("size")) .Skip(ctx.GetArgument <int>("index"))); }