diff --git a/src/modules/crm/CRMCore.Module.GraphQL/CRMCore.Module.GraphQL.csproj b/src/modules/crm/CRMCore.Module.GraphQL/CRMCore.Module.GraphQL.csproj
index a220072..1c47059 100644
--- a/src/modules/crm/CRMCore.Module.GraphQL/CRMCore.Module.GraphQL.csproj
+++ b/src/modules/crm/CRMCore.Module.GraphQL/CRMCore.Module.GraphQL.csproj
@@ -7,6 +7,7 @@
+
diff --git a/src/modules/crm/CRMCore.Module.GraphQL/DbContextExtensions.cs b/src/modules/crm/CRMCore.Module.GraphQL/DbContextExtensions.cs
new file mode 100644
index 0000000..7d90443
--- /dev/null
+++ b/src/modules/crm/CRMCore.Module.GraphQL/DbContextExtensions.cs
@@ -0,0 +1,18 @@
+using Microsoft.EntityFrameworkCore;
+using System;
+using System.Linq;
+using System.Reflection;
+
+namespace CRMCore.Module.GraphQL
+{
+ public static class DbContextExtensions
+ {
+ public static IQueryable Query(this DbContext context, string entityName) =>
+ context.Query(context.Model.FindEntityType(entityName).ClrType);
+
+ static readonly MethodInfo SetMethod = typeof(DbContext).GetMethod(nameof(DbContext.Set));
+
+ public static IQueryable Query(this DbContext context, Type entityType) =>
+ (IQueryable)SetMethod.MakeGenericMethod(entityType).Invoke(context, null);
+ }
+}
diff --git a/src/modules/crm/CRMCore.Module.GraphQL/GraphQLController.cs b/src/modules/crm/CRMCore.Module.GraphQL/GraphQLController.cs
index 8003d5f..2824052 100644
--- a/src/modules/crm/CRMCore.Module.GraphQL/GraphQLController.cs
+++ b/src/modules/crm/CRMCore.Module.GraphQL/GraphQLController.cs
@@ -17,8 +17,16 @@ public GraphQLController(Schema schema)
graphQLSchema = schema;
}
- [HttpPost("")]
- public async Task Get([FromQuery] string query = "{ crm_Tasks_list { id } }")
+ ///
+ /// Try as following
+ /// { crm_Tasks_list(offset:1, first:10) { name } }
+ /// { crm_Tasks_list { name } }
+ /// { crm_Tasks(id: "5BEF390D-5B71-4DBA-853A-00E164D4EA93") { name } }
+ ///
+ ///
+ ///
+ [HttpPost]
+ public async Task Get([FromQuery] string query = "{ crm_Tasks_list(offset:1, first:10) { id, name } }")
{
var result = await new DocumentExecuter().ExecuteAsync(
new ExecutionOptions()
@@ -28,6 +36,11 @@ public async Task Get([FromQuery] string query = "{ crm_Tasks_list { id
}
).ConfigureAwait(false);
+ if (result.Errors?.Count > 0)
+ {
+ return result.Errors.ToString();
+ }
+
var json = new DocumentWriter(indent: true).Write(result.Data);
return json;
}
diff --git a/src/modules/crm/CRMCore.Module.GraphQL/GraphQLQuery.cs b/src/modules/crm/CRMCore.Module.GraphQL/GraphQLQuery.cs
index 368da9f..852d240 100644
--- a/src/modules/crm/CRMCore.Module.GraphQL/GraphQLQuery.cs
+++ b/src/modules/crm/CRMCore.Module.GraphQL/GraphQLQuery.cs
@@ -1,19 +1,16 @@
-using CRMCore.Module.Data;
-using CRMCore.Module.GraphQL.Models;
-using GraphQL.Resolvers;
+using CRMCore.Module.GraphQL.Models;
+using CRMCore.Module.GraphQL.Resolvers;
using GraphQL.Types;
using Microsoft.EntityFrameworkCore;
-using System;
-using System.Collections.Generic;
namespace CRMCore.Module.GraphQL
{
public class GraphQLQuery : ObjectGraphType