diff --git a/Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/Client/Index.razor b/Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/Client/Index.razor index df16458b..111e69ab 100644 --- a/Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/Client/Index.razor +++ b/Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/Client/Index.razor @@ -61,8 +61,8 @@ else - Repository\I[Module]Repository.cs - interface for defining repository methods
- Repository\[Module]Respository.cs - implements repository interface methods for data access using EF Core
- Repository\[Module]Context.cs - provides a DB Context for data access
-- Scripts\[Owner].[Module].1.0.0.sql - database schema definition script

-- Scripts\[Owner].[Module].Uninstall.sql - database uninstall script

+- Scripts\[Owner].[Module]s.1.0.0.sql - database schema definition script
+- Scripts\[Owner].[Module]s.Uninstall.sql - database uninstall script

[RootPath]Shared\
- [Owner].[Module]s.csproj - shared project
- Models\[Module].cs - model definition

diff --git a/Oqtane.Client/Modules/Admin/ModuleCreator/Templates/Internal/Oqtane.Client/Modules/[Module]/Index.razor b/Oqtane.Client/Modules/Admin/ModuleCreator/Templates/Internal/Oqtane.Client/Modules/[Module]/Index.razor index 0656cb80..b683abf4 100644 --- a/Oqtane.Client/Modules/Admin/ModuleCreator/Templates/Internal/Oqtane.Client/Modules/[Module]/Index.razor +++ b/Oqtane.Client/Modules/Admin/ModuleCreator/Templates/Internal/Oqtane.Client/Modules/[Module]/Index.razor @@ -53,8 +53,8 @@ else - Repository\I[Module]Repository.cs - interface for defining repository methods
- Repository\[Module]Respository.cs - implements repository interface methods for data access using EF Core
- Repository\[Module]Context.cs - provides a DB Context for data access
-- Scripts\[Owner].[Module].1.0.0.sql - database schema definition script

-- Scripts\[Owner].[Module].Uninstall.sql - database uninstall script

+- Scripts\[Owner].[Module]s.1.0.0.sql - database schema definition script
+- Scripts\[Owner].[Module]s.Uninstall.sql - database uninstall script

[RootPath]Oqtane.Shared\Modules\[Module]\
- Models\[Module].cs - model definition

diff --git a/Oqtane.Server/Controllers/ModuleDefinitionController.cs b/Oqtane.Server/Controllers/ModuleDefinitionController.cs index d9131d69..039d6782 100644 --- a/Oqtane.Server/Controllers/ModuleDefinitionController.cs +++ b/Oqtane.Server/Controllers/ModuleDefinitionController.cs @@ -14,6 +14,8 @@ using Oqtane.Security; using System; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Configuration; +using System.Xml.Linq; +using Microsoft.AspNetCore.Mvc.Formatters; // ReSharper disable StringIndexOfIsCultureSpecific.1 namespace Oqtane.Controllers @@ -208,13 +210,13 @@ namespace Oqtane.Controllers if (moduleDefinition.Template == "internal") { rootPath = Utilities.PathCombine(rootFolder.FullName,"\\"); - moduleDefinition.ModuleDefinitionName = moduleDefinition.Owner + "." + moduleDefinition.Name + "s.Modules, Oqtane.Client"; + moduleDefinition.ModuleDefinitionName = moduleDefinition.Owner + "." + moduleDefinition.Name + "s, Oqtane.Client"; moduleDefinition.ServerManagerType = moduleDefinition.Owner + "." + moduleDefinition.Name + "s.Manager." + moduleDefinition.Name + "Manager, Oqtane.Server"; } else { rootPath = Utilities.PathCombine(rootFolder.Parent.FullName , moduleDefinition.Owner + "." + moduleDefinition.Name + "s","\\"); - moduleDefinition.ModuleDefinitionName = moduleDefinition.Owner + "." + moduleDefinition.Name + "s.Modules, " + moduleDefinition.Owner + "." + moduleDefinition.Name + "s.Client.Oqtane"; + moduleDefinition.ModuleDefinitionName = moduleDefinition.Owner + "." + moduleDefinition.Name + "s, " + moduleDefinition.Owner + "." + moduleDefinition.Name + "s.Client.Oqtane"; moduleDefinition.ServerManagerType = moduleDefinition.Owner + "." + moduleDefinition.Name + "s.Manager." + moduleDefinition.Name + "Manager, " + moduleDefinition.Owner + "." + moduleDefinition.Name + "s.Server.Oqtane"; } @@ -227,7 +229,11 @@ namespace Oqtane.Controllers if (moduleDefinition.Template == "internal") { - // need logic to add embedded scripts to Oqtane.Server.csproj - also you need to remove them on uninstall + // add embedded resources to project + List resources = new List(); + resources.Add(Utilities.PathCombine("Modules", moduleDefinition.Name, "Scripts", moduleDefinition.Owner + "." + moduleDefinition.Name + "s.1.0.0.sql")); + resources.Add(Utilities.PathCombine("Modules", moduleDefinition.Name, "Scripts", moduleDefinition.Owner + "." + moduleDefinition.Name + "s.Uninstall.sql")); + EmbedResourceFiles(Utilities.PathCombine(rootPath, "Oqtane.Server", "Oqtane.Server.csproj"), resources); } _installationManager.RestartApplication(); @@ -276,5 +282,19 @@ namespace Oqtane.Controllers } } } + + private void EmbedResourceFiles(string projectfile, List resources) + { + XDocument project = XDocument.Load(projectfile); + var itemGroup = project.Descendants("ItemGroup").Descendants("EmbeddedResource").FirstOrDefault().Parent; + if (itemGroup != null) + { + foreach (var resource in resources) + { + itemGroup.Add(new XElement("EmbeddedResource", new XAttribute("Include", resource))); + } + } + project.Save(projectfile); + } } } diff --git a/Oqtane.Server/Oqtane.Server.csproj b/Oqtane.Server/Oqtane.Server.csproj index 88064ed9..a2f3e77c 100644 --- a/Oqtane.Server/Oqtane.Server.csproj +++ b/Oqtane.Server/Oqtane.Server.csproj @@ -1,5 +1,5 @@ - - + + netcoreapp3.1 7.3 @@ -16,21 +16,14 @@ Not for production use. Oqtane - - - - - - + + + + - - - - - @@ -41,10 +34,8 @@ - - - + \ No newline at end of file