Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
 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);
     });
 }
Ejemplo n.º 3
0
        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);
        }