public LinkedDataQuery(GenesRepository genesRepository, ProteinsRepository proteinsRepository) { Name = "LinkedDataQuery"; Field <GeneType>( "gene", arguments: new QueryArguments(new QueryArgument[] { new QueryArgument <StringGraphType> { Name = "name" } }), resolve: context => { var geneName = context.GetArgument <string>("name"); return(genesRepository.Get((Gene gene) => gene.Name == geneName)); }); Field <ListGraphType <GeneType> >( "genes", resolve: context => genesRepository.GetAll()); Field <ListGraphType <GeneWithRelationsType> >( "genesRelations", arguments: new QueryArguments(new QueryArgument[] { new QueryArgument <StringGraphType> { Name = "geneName" } }), resolve: context => { var geneName = context.GetArgument <string>("geneName"); return(!string.IsNullOrEmpty(geneName) ? genesRepository.GetTree((Gene gene) => gene.Name == geneName) : genesRepository.GetTree()); }); Field <ListGraphType <ProteinWithRelationsType> >( "proteins", arguments: new QueryArguments(new QueryArgument[] { new QueryArgument <StringGraphType> { Name = "geneName" } }), resolve: context => { var geneName = context.GetArgument <string>("geneName"); return(!string.IsNullOrEmpty(geneName) ? proteinsRepository.GetTree((Gene gene) => gene.Name == geneName) : proteinsRepository.GetTree()); }); }
public LinkedDataMutation(GenesRepository repository) { Name = "LinkedDataMutation"; // put gene function Field <GeneType>( "putGene", arguments: new QueryArguments( new QueryArgument <NonNullGraphType <GeneInputType> > { Name = "gene" } ), resolve: context => { var gene = context.GetArgument <Gene>("gene"); repository.Put(gene); repository.PutRelated(gene); return(gene); } ); }
public GenesController(GenesRepository repository, ProteinsRepository proteinsRepository) { _repository = repository; _proteinsRepository = proteinsRepository; }