diff --git a/crmcore.sln b/crmcore.sln
index 4167c16..f9cb26e 100644
--- a/crmcore.sln
+++ b/crmcore.sln
@@ -76,9 +76,9 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CRMCore.Module.Data", "src\
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "base", "base", "{E71DEB4F-1656-46AA-979F-0211977DE983}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CRMCore.Module.Entities", "src\modules\base\CRMCore.Module.Entities\CRMCore.Module.Entities.csproj", "{A3971BCB-B342-4267-9783-D4C6A56A8391}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CRMCore.Module.Entities", "src\modules\base\CRMCore.Module.Entities\CRMCore.Module.Entities.csproj", "{A3971BCB-B342-4267-9783-D4C6A56A8391}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CRMCore.Module.MvcCore", "src\modules\base\CRMCore.Module.MvcCore\CRMCore.Module.MvcCore.csproj", "{AFA2A443-4642-4C86-A3EC-106122E22D5B}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CRMCore.Module.MvcCore", "src\modules\base\CRMCore.Module.MvcCore\CRMCore.Module.MvcCore.csproj", "{AFA2A443-4642-4C86-A3EC-106122E22D5B}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CRMCore.Module.Data.SqlServer", "src\modules\support\CRMCore.Module.Data.SqlServer\CRMCore.Module.Data.SqlServer.csproj", "{C1668722-949E-495A-B6A9-12D49B810041}"
EndProject
@@ -86,6 +86,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CRMCore.Module.ReDoc", "src
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CRMCore.Module.Swagger", "src\modules\support\CRMCore.Module.Swagger\CRMCore.Module.Swagger.csproj", "{72596C0C-FDB0-40FB-90AC-01752A080118}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CRMCore.Module.GraphQL", "src\modules\crm\CRMCore.Module.GraphQL\CRMCore.Module.GraphQL.csproj", "{7ECB9B94-009E-4331-A924-5663C2111788}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -180,6 +182,10 @@ Global
{72596C0C-FDB0-40FB-90AC-01752A080118}.Debug|Any CPU.Build.0 = Debug|Any CPU
{72596C0C-FDB0-40FB-90AC-01752A080118}.Release|Any CPU.ActiveCfg = Release|Any CPU
{72596C0C-FDB0-40FB-90AC-01752A080118}.Release|Any CPU.Build.0 = Release|Any CPU
+ {7ECB9B94-009E-4331-A924-5663C2111788}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {7ECB9B94-009E-4331-A924-5663C2111788}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {7ECB9B94-009E-4331-A924-5663C2111788}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {7ECB9B94-009E-4331-A924-5663C2111788}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -212,6 +218,7 @@ Global
{C1668722-949E-495A-B6A9-12D49B810041} = {18C4BB63-4369-4DF3-87D2-B203F0917F1E}
{A9068043-B2DD-4E36-AF0D-AA5A918CFBEC} = {18C4BB63-4369-4DF3-87D2-B203F0917F1E}
{72596C0C-FDB0-40FB-90AC-01752A080118} = {18C4BB63-4369-4DF3-87D2-B203F0917F1E}
+ {7ECB9B94-009E-4331-A924-5663C2111788} = {7C9ACFC1-00F0-4547-9AF4-1A0E43AE1935}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {3171C67F-EFB1-46FF-A566-6DC6C1E80FC5}
diff --git a/src/hosts/CRMCore.WebApp/ClientApp/src/components/Sidebar/_nav.js b/src/hosts/CRMCore.WebApp/ClientApp/src/components/Sidebar/_nav.js
index 30911be..5de91cf 100644
--- a/src/hosts/CRMCore.WebApp/ClientApp/src/components/Sidebar/_nav.js
+++ b/src/hosts/CRMCore.WebApp/ClientApp/src/components/Sidebar/_nav.js
@@ -123,7 +123,7 @@ export default {
},
{
name: 'Swagger',
- url: `${globalConfig.apiServer}/swagger`,
+ url: `${globalConfig.apiServer}/my-swagger`,
icon: 'icon-star'
},
{
diff --git a/src/modules/crm/CRMCore.Module.Common/CRMCore.Module.Common.csproj b/src/modules/crm/CRMCore.Module.Common/CRMCore.Module.Common.csproj
index 0831862..6941c44 100644
--- a/src/modules/crm/CRMCore.Module.Common/CRMCore.Module.Common.csproj
+++ b/src/modules/crm/CRMCore.Module.Common/CRMCore.Module.Common.csproj
@@ -2,7 +2,6 @@
netstandard2.0
-
Library
diff --git a/src/modules/crm/CRMCore.Module.Contact/CRMCore.Module.Contact.csproj b/src/modules/crm/CRMCore.Module.Contact/CRMCore.Module.Contact.csproj
index d16480e..2deec8d 100644
--- a/src/modules/crm/CRMCore.Module.Contact/CRMCore.Module.Contact.csproj
+++ b/src/modules/crm/CRMCore.Module.Contact/CRMCore.Module.Contact.csproj
@@ -2,7 +2,6 @@
netstandard2.0
-
Library
diff --git a/src/modules/crm/CRMCore.Module.GraphQL/CRMCore.Module.GraphQL.csproj b/src/modules/crm/CRMCore.Module.GraphQL/CRMCore.Module.GraphQL.csproj
new file mode 100644
index 0000000..a220072
--- /dev/null
+++ b/src/modules/crm/CRMCore.Module.GraphQL/CRMCore.Module.GraphQL.csproj
@@ -0,0 +1,17 @@
+
+
+
+ netstandard2.0
+ Library
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/modules/crm/CRMCore.Module.GraphQL/GraphQLController.cs b/src/modules/crm/CRMCore.Module.GraphQL/GraphQLController.cs
new file mode 100644
index 0000000..8003d5f
--- /dev/null
+++ b/src/modules/crm/CRMCore.Module.GraphQL/GraphQLController.cs
@@ -0,0 +1,35 @@
+using GraphQL;
+using GraphQL.Http;
+using GraphQL.Types;
+using Microsoft.AspNetCore.Mvc;
+using System.Threading.Tasks;
+
+namespace CRMCore.Module.GraphQL
+{
+ [Area("CRMCore.Module.GraphQL")]
+ [Route("graphql/api/query")]
+ public class GraphQLController : Controller
+ {
+ private readonly Schema graphQLSchema;
+
+ public GraphQLController(Schema schema)
+ {
+ graphQLSchema = schema;
+ }
+
+ [HttpPost("")]
+ public async Task Get([FromQuery] string query = "{ crm_Tasks_list { id } }")
+ {
+ var result = await new DocumentExecuter().ExecuteAsync(
+ new ExecutionOptions()
+ {
+ Schema = graphQLSchema,
+ Query = query
+ }
+ ).ConfigureAwait(false);
+
+ 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
new file mode 100644
index 0000000..368da9f
--- /dev/null
+++ b/src/modules/crm/CRMCore.Module.GraphQL/GraphQLQuery.cs
@@ -0,0 +1,102 @@
+using CRMCore.Module.Data;
+using CRMCore.Module.GraphQL.Models;
+using GraphQL.Resolvers;
+using GraphQL.Types;
+using Microsoft.EntityFrameworkCore;
+using System;
+using System.Collections.Generic;
+
+namespace CRMCore.Module.GraphQL
+{
+ public class GraphQLQuery : ObjectGraphType