Exemplo n.º 1
0
        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());
            });
        }
Exemplo n.º 2
0
        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);
            }
                );
        }
Exemplo n.º 3
0
 public GenesController(GenesRepository repository,
                        ProteinsRepository proteinsRepository)
 {
     _repository         = repository;
     _proteinsRepository = proteinsRepository;
 }