public MainQuery() { Field <ListGraphType <CategoriaType> >("categorias", arguments: new QueryArguments(new List <QueryArgument> { new QueryArgument <IdGraphType> { Name = "id" }, new QueryArgument <StringGraphType> { Name = "descricao" } }), resolve: context => { var query = StaticDataBase.GetCategorias(); int?categoriaId = context.GetArgument <int?>("id"); if (categoriaId.HasValue) { if (categoriaId.Value <= 0) { context.Errors.Add(new ExecutionError("Id não deve ser menor ou igual a zero!")); return(new List <Categoria>()); } return(query.Where(w => w.Id == categoriaId)); } string descricao = context.GetArgument <string>("descricao"); if (!string.IsNullOrEmpty(descricao)) { return(query.Where(w => w.Descricao == descricao)); } return(query.ToList()); }); Field <ListGraphType <ProdutoType> >("produtos", arguments: new ProdutoArguments(), resolve: context => ProdutoFieldContext.Resolve(context)); }
public MainMutation() { Field <CategoriaType>("createCategoria", arguments: new QueryArguments(new QueryArgument <NonNullGraphType <CategoriaInputType> > { Name = "categoria" }), resolve: context => { var categoria = context.GetArgument <Categoria>("categoria"); if (categoria == null) { context.Errors.Add(new ExecutionError("Categoria não foi informada!")); return(null); } StaticDataBase.AddCategoria(categoria); return(categoria); }); Field <CategoriaType>("updateCategoria", arguments: new QueryArguments(new QueryArgument <NonNullGraphType <CategoriaInputType> > { Name = "categoria" }), resolve: context => { var categoria = context.GetArgument <Categoria>("categoria"); if (categoria == null) { context.Errors.Add(new ExecutionError("Categoria não foi informada!")); return(null); } var categoriaDb = StaticDataBase.GetQueryCategorias().Where(c => c.Id == categoria.Id).FirstOrDefault(); if (categoriaDb == null) { context.Errors.Add(new ExecutionError("Categoria não foi localizada!")); return(null); } categoriaDb.Descricao = categoria.Descricao; //StaticDataBase.AddCategoria(categoria); return(categoriaDb); }); }
public static IQueryable <Produto> Resolve <TSourceContext>(ResolveFieldContext <TSourceContext> context) { var query = StaticDataBase.GetQueryProdutos(); int?produtoId = context.GetArgument <int?>("id"); if (produtoId.HasValue) { if (produtoId.Value <= 0) { context.Errors.Add(new ExecutionError("Id não deve ser menor ou igual a zero!")); return(null); } return(query.Where(w => w.Id == produtoId)); } string descricao = context.GetArgument <string>("descricao"); if (!string.IsNullOrEmpty(descricao)) { return(query.Where(w => w.Descricao == descricao)); } string codigoBarras = context.GetArgument <string>("codigoBarras"); if (!string.IsNullOrEmpty(codigoBarras)) { return(query.Where(w => w.CodigoBarras == codigoBarras)); } bool?controlaValidade = context.GetArgument <bool?>("controlaValidade"); if (controlaValidade.HasValue) { return(query.Where(w => w.ControlaValidade == controlaValidade)); } DateTime?validadeGt = context.GetArgument <DateTime?>("validade_gt"); if (validadeGt.HasValue) { return(query.Where(w => w.DataValidade >= validadeGt)); } DateTime?validadeLt = context.GetArgument <DateTime?>("validade_lt"); if (validadeLt.HasValue) { return(query.Where(w => w.DataValidade <= validadeLt)); } DateTime?validadeEq = context.GetArgument <DateTime?>("validade_eq"); if (validadeEq.HasValue) { return(query.Where(w => w.DataValidade == validadeLt)); } int?estoqueGt = context.GetArgument <int?>("estoque_gt"); if (estoqueGt.HasValue) { return(query.Where(w => w.Estoque >= estoqueGt)); } int?estoqueLt = context.GetArgument <int?>("estoque_lt"); if (estoqueLt.HasValue) { return(query.Where(w => w.Estoque <= estoqueLt)); } int?estoqueEq = context.GetArgument <int?>("estoque_eq"); if (estoqueEq.HasValue) { return(query.Where(w => w.Estoque == estoqueEq)); } return(query); }