|  |  |  | @ -4,6 +4,9 @@ using System.Linq; | 
		
	
		
			
				|  |  |  |  | using Oqtane.Models; | 
		
	
		
			
				|  |  |  |  | using Oqtane.Shared; | 
		
	
		
			
				|  |  |  |  | using System; | 
		
	
		
			
				|  |  |  |  | using System.Reflection; | 
		
	
		
			
				|  |  |  |  | using Oqtane.Modules; | 
		
	
		
			
				|  |  |  |  | using Microsoft.Extensions.DependencyInjection; | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  | namespace Oqtane.Repository | 
		
	
		
			
				|  |  |  |  | { | 
		
	
	
		
			
				
					
					|  |  |  | @ -15,9 +18,11 @@ namespace Oqtane.Repository | 
		
	
		
			
				|  |  |  |  |         private readonly IPageRepository PageRepository; | 
		
	
		
			
				|  |  |  |  |         private readonly IModuleRepository ModuleRepository; | 
		
	
		
			
				|  |  |  |  |         private readonly IPageModuleRepository PageModuleRepository; | 
		
	
		
			
				|  |  |  |  |         private readonly IModuleDefinitionRepository ModuleDefinitionRepository; | 
		
	
		
			
				|  |  |  |  |         private readonly IServiceProvider ServiceProvider; | 
		
	
		
			
				|  |  |  |  |         private readonly List<PageTemplate> SiteTemplate; | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         public SiteRepository(TenantDBContext context, IRoleRepository RoleRepository, IProfileRepository ProfileRepository, IPageRepository PageRepository, IModuleRepository ModuleRepository, IPageModuleRepository PageModuleRepository) | 
		
	
		
			
				|  |  |  |  |         public SiteRepository(TenantDBContext context, IRoleRepository RoleRepository, IProfileRepository ProfileRepository, IPageRepository PageRepository, IModuleRepository ModuleRepository, IPageModuleRepository PageModuleRepository, IModuleDefinitionRepository ModuleDefinitionRepository, IServiceProvider ServiceProvider) | 
		
	
		
			
				|  |  |  |  |         { | 
		
	
		
			
				|  |  |  |  |             db = context; | 
		
	
		
			
				|  |  |  |  |             this.RoleRepository = RoleRepository; | 
		
	
	
		
			
				
					
					|  |  |  | @ -25,33 +30,54 @@ namespace Oqtane.Repository | 
		
	
		
			
				|  |  |  |  |             this.PageRepository = PageRepository; | 
		
	
		
			
				|  |  |  |  |             this.ModuleRepository = ModuleRepository; | 
		
	
		
			
				|  |  |  |  |             this.PageModuleRepository = PageModuleRepository; | 
		
	
		
			
				|  |  |  |  |             this.ModuleDefinitionRepository = ModuleDefinitionRepository; | 
		
	
		
			
				|  |  |  |  |             this.ServiceProvider = ServiceProvider; | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |             // defines the default site template | 
		
	
		
			
				|  |  |  |  |             // define the default site template | 
		
	
		
			
				|  |  |  |  |             SiteTemplate = new List<PageTemplate>(); | 
		
	
		
			
				|  |  |  |  |             SiteTemplate.Add(new PageTemplate { Name = "Home", Parent = "", Path = "", Order = 1, Icon = "home", IsNavigation = true, EditMode = false, PagePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"All Users;Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]",  | 
		
	
		
			
				|  |  |  |  |                 ModuleDefinitionName = "", ModulePermissions = "", Title = "", Pane = "", ContainerType = "" }); | 
		
	
		
			
				|  |  |  |  |             SiteTemplate.Add(new PageTemplate { Name = "Admin", Parent = "", Path = "admin", Order = 1, Icon = "", IsNavigation = false, EditMode = true, PagePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]",  | 
		
	
		
			
				|  |  |  |  |                 ModuleDefinitionName = "Oqtane.Modules.Admin.Dashboard, Oqtane.Client", ModulePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", Title = "Administration", Pane = "top", ContainerType = "Oqtane.Themes.Theme2.Container2, Oqtane.Client" }); | 
		
	
		
			
				|  |  |  |  |             SiteTemplate.Add(new PageTemplate { Name = "Site Management", Parent = "Admin", Path = "admin/sites", Order = 1, Icon = "globe", IsNavigation = false, EditMode = true, PagePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]",  | 
		
	
		
			
				|  |  |  |  |                 ModuleDefinitionName = "Oqtane.Modules.Admin.Sites, Oqtane.Client", ModulePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", Title = "Site Management", Pane = "top", ContainerType = "Oqtane.Themes.Theme2.Container2, Oqtane.Client" }); | 
		
	
		
			
				|  |  |  |  |             SiteTemplate.Add(new PageTemplate { Name = "Page Management", Parent = "Admin", Path = "admin/pages", Order = 1, Icon = "layers", IsNavigation = false, EditMode = true, PagePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]",  | 
		
	
		
			
				|  |  |  |  |                 ModuleDefinitionName = "Oqtane.Modules.Admin.Pages, Oqtane.Client", ModulePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", Title = "Page Management", Pane = "top", ContainerType = "Oqtane.Themes.Theme2.Container2, Oqtane.Client" }); | 
		
	
		
			
				|  |  |  |  |             SiteTemplate.Add(new PageTemplate { Name = "Module Management", Parent = "Admin", Path = "admin/modules", Order = 1, Icon = "browser", IsNavigation = false, EditMode = true, PagePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]",  | 
		
	
		
			
				|  |  |  |  |                 ModuleDefinitionName = "Oqtane.Modules.Admin.ModuleDefinitions, Oqtane.Client", ModulePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", Title = "Module Management", Pane = "top", ContainerType = "Oqtane.Themes.Theme2.Container2, Oqtane.Client" }); | 
		
	
		
			
				|  |  |  |  |             SiteTemplate.Add(new PageTemplate { Name = "Theme Management", Parent = "Admin", Path = "admin/themes", Order = 1, Icon = "brush", IsNavigation = false, EditMode = true, PagePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]",  | 
		
	
		
			
				|  |  |  |  |                 ModuleDefinitionName = "Oqtane.Modules.Admin.Themes, Oqtane.Client", ModulePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", Title = "Theme Management", Pane = "top", ContainerType = "Oqtane.Themes.Theme2.Container2, Oqtane.Client" }); | 
		
	
		
			
				|  |  |  |  |             SiteTemplate.Add(new PageTemplate { Name = "User Management", Parent = "Admin", Path = "admin/users", Order = 1, Icon = "person", IsNavigation = false, EditMode = true, PagePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]",  | 
		
	
		
			
				|  |  |  |  |                 ModuleDefinitionName = "Oqtane.Modules.Admin.Users, Oqtane.Client", ModulePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", Title = "User Management", Pane = "top", ContainerType = "Oqtane.Themes.Theme2.Container2, Oqtane.Client" }); | 
		
	
		
			
				|  |  |  |  |             SiteTemplate.Add(new PageTemplate { Name = "Role Management", Parent = "Admin", Path = "admin/roles", Order = 1, Icon = "lock-locked", IsNavigation = false, EditMode = true, PagePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]",  | 
		
	
		
			
				|  |  |  |  |                 ModuleDefinitionName = "Oqtane.Modules.Admin.Roles, Oqtane.Client", ModulePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", Title = "Role Management", Pane = "top", ContainerType = "Oqtane.Themes.Theme2.Container2, Oqtane.Client" }); | 
		
	
		
			
				|  |  |  |  |             SiteTemplate.Add(new PageTemplate { Name = "Tenant Management", Parent = "Admin", Path = "admin/tenants", Order = 1, Icon = "list", IsNavigation = false, EditMode = true, PagePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]",  | 
		
	
		
			
				|  |  |  |  |                 ModuleDefinitionName = "Oqtane.Modules.Admin.Tenants, Oqtane.Client", ModulePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", Title = "Site Management", Pane = "top", ContainerType = "Oqtane.Themes.Theme2.Container2, Oqtane.Client" }); | 
		
	
		
			
				|  |  |  |  |             SiteTemplate.Add(new PageTemplate { Name = "Login", Parent = "", Path = "login", Order = 1, Icon = "lock-locked", IsNavigation = false, EditMode = false, PagePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"All Users;Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]",  | 
		
	
		
			
				|  |  |  |  |                 ModuleDefinitionName = "Oqtane.Modules.Admin.Login, Oqtane.Client", ModulePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"All Users;Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", Title = "Login", Pane = "top", ContainerType = "Oqtane.Themes.Theme2.Container2, Oqtane.Client" }); | 
		
	
		
			
				|  |  |  |  |             SiteTemplate.Add(new PageTemplate { Name = "Register", Parent = "", Path = "register", Order = 1, Icon = "person", IsNavigation = false, EditMode = false, PagePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"All Users;Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]",  | 
		
	
		
			
				|  |  |  |  |                 ModuleDefinitionName = "Oqtane.Modules.Admin.Register, Oqtane.Client", ModulePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"All Users;Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", Title = "Register", Pane = "top", ContainerType = "Oqtane.Themes.Theme2.Container2, Oqtane.Client" }); | 
		
	
		
			
				|  |  |  |  |             SiteTemplate.Add(new PageTemplate { Name = "Profile", Parent = "", Path = "profile", Order = 1, Icon = "person", IsNavigation = false, EditMode = false, PagePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"All Users;Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]",  | 
		
	
		
			
				|  |  |  |  |                 ModuleDefinitionName = "Oqtane.Modules.Admin.Profile, Oqtane.Client", ModulePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"All Users;Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", Title = "User Profile", Pane = "top", ContainerType = "Oqtane.Themes.Theme2.Container2, Oqtane.Client" }); | 
		
	
		
			
				|  |  |  |  |             SiteTemplate.Add(new PageTemplate { Name = "Home", Parent = "", Path = "", Order = 1, Icon = "home", IsNavigation = true, EditMode = false, PagePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"All Users;Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", PageTemplateModules = new List<PageTemplateModule> { | 
		
	
		
			
				|  |  |  |  |                 new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.HtmlText, Oqtane.Client", ModulePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"All Users;Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", Title = "Welcome To Oqtane", Pane = "top", ContainerType = "Oqtane.Themes.Theme2.Container2, Oqtane.Client",  | 
		
	
		
			
				|  |  |  |  |                     Content = "<p><a href=\"https://www.oqtane.org\" target=\"_new\">Oqtane</a> is an open source <b>modular application framework</b> built from the ground up using modern .NET Core technology. It leverages the revolutionary new Blazor component model to create a <b>fully dynamic</b> web development experience which can be executed on a client or server. Whether you are looking for a platform to <b>accelerate your web development</b> efforts, or simply interested in exploring the anatomy of a large-scale Blazor application, Oqtane provides a solid foundation based on proven enterprise architectural principles.</p>" + | 
		
	
		
			
				|  |  |  |  |                     "<p align=\"center\"><a href=\"https://www.oqtane.org\" target=\"_new\"><img src=\"oqtane.png\"></a><br /><br /><a class=\"btn btn-primary\" href=\"https://www.oqtane.org/Community\" target=\"_new\">Join Our Community</a>  <a class=\"btn btn-primary\" href=\"https://github.com/oqtane/oqtane.framework\" target=\"_new\">Clone Our Repo</a><br /><br /></p>" + | 
		
	
		
			
				|  |  |  |  |                     "<p><a href=\"https://dotnet.microsoft.com/apps/aspnet/web-apps/blazor\" target=\"_new\">Blazor</a> is a single-page app framework that lets you build interactive web applications using C# instead of JavaScript. Client-side Blazor relies on WebAssembly, an open web standard that does not require plugins or code transpilation in order to run natively in a web browser. Server-side Blazor uses SignalR to host your application on a web server and provide a responsive and robust debugging experience. Blazor applications works in all modern web browsers, including mobile browsers.</p>" + | 
		
	
		
			
				|  |  |  |  |                     "<p>Blazor is a feature of<a href=\"https://dotnet.microsoft.com/apps/aspnet\" target=\"_new\">ASP.NET Core 3.0</a>, the popular cross platform web development framework from Microsoft that extends the <a href=\"https://dotnet.microsoft.com/learn/dotnet/what-is-dotnet\" target=\"_new\" >.NET developer platform</a> with tools and libraries for building web apps.</p>" } | 
		
	
		
			
				|  |  |  |  |             }});  | 
		
	
		
			
				|  |  |  |  |             SiteTemplate.Add(new PageTemplate { Name = "Admin", Parent = "", Path = "admin", Order = 1, Icon = "", IsNavigation = false, EditMode = true, PagePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", PageTemplateModules = new List<PageTemplateModule> { | 
		
	
		
			
				|  |  |  |  |                 new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.Dashboard, Oqtane.Client", ModulePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", Title = "Administration", Pane = "top", ContainerType = "Oqtane.Themes.Theme2.Container2, Oqtane.Client", Content = "" } | 
		
	
		
			
				|  |  |  |  |             }}); | 
		
	
		
			
				|  |  |  |  |             SiteTemplate.Add(new PageTemplate { Name = "Site Management", Parent = "Admin", Path = "admin/sites", Order = 1, Icon = "globe", IsNavigation = false, EditMode = true, PagePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", PageTemplateModules = new List<PageTemplateModule> { | 
		
	
		
			
				|  |  |  |  |                 new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.Sites, Oqtane.Client", ModulePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", Title = "Site Management", Pane = "top", ContainerType = "Oqtane.Themes.Theme2.Container2, Oqtane.Client", Content = "" } | 
		
	
		
			
				|  |  |  |  |             }}); | 
		
	
		
			
				|  |  |  |  |             SiteTemplate.Add(new PageTemplate { Name = "Page Management", Parent = "Admin", Path = "admin/pages", Order = 1, Icon = "layers", IsNavigation = false, EditMode = true, PagePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", PageTemplateModules = new List<PageTemplateModule> { | 
		
	
		
			
				|  |  |  |  |                 new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.Pages, Oqtane.Client", ModulePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", Title = "Page Management", Pane = "top", ContainerType = "Oqtane.Themes.Theme2.Container2, Oqtane.Client", Content = "" } | 
		
	
		
			
				|  |  |  |  |             }}); | 
		
	
		
			
				|  |  |  |  |             SiteTemplate.Add(new PageTemplate { Name = "Module Management", Parent = "Admin", Path = "admin/modules", Order = 1, Icon = "browser", IsNavigation = false, EditMode = true, PagePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", PageTemplateModules = new List<PageTemplateModule> { | 
		
	
		
			
				|  |  |  |  |                 new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.ModuleDefinitions, Oqtane.Client", ModulePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", Title = "Module Management", Pane = "top", ContainerType = "Oqtane.Themes.Theme2.Container2, Oqtane.Client", Content = "" } | 
		
	
		
			
				|  |  |  |  |             }}); | 
		
	
		
			
				|  |  |  |  |             SiteTemplate.Add(new PageTemplate { Name = "Theme Management", Parent = "Admin", Path = "admin/themes", Order = 1, Icon = "brush", IsNavigation = false, EditMode = true, PagePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", PageTemplateModules = new List<PageTemplateModule> { | 
		
	
		
			
				|  |  |  |  |                 new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.Themes, Oqtane.Client", ModulePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", Title = "Theme Management", Pane = "top", ContainerType = "Oqtane.Themes.Theme2.Container2, Oqtane.Client", Content = "" } | 
		
	
		
			
				|  |  |  |  |             }}); | 
		
	
		
			
				|  |  |  |  |             SiteTemplate.Add(new PageTemplate { Name = "User Management", Parent = "Admin", Path = "admin/users", Order = 1, Icon = "person", IsNavigation = false, EditMode = true, PagePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", PageTemplateModules = new List<PageTemplateModule> { | 
		
	
		
			
				|  |  |  |  |                 new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.Users, Oqtane.Client", ModulePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", Title = "User Management", Pane = "top", ContainerType = "Oqtane.Themes.Theme2.Container2, Oqtane.Client", Content = "" } | 
		
	
		
			
				|  |  |  |  |             }}); | 
		
	
		
			
				|  |  |  |  |             SiteTemplate.Add(new PageTemplate { Name = "Role Management", Parent = "Admin", Path = "admin/roles", Order = 1, Icon = "lock-locked", IsNavigation = false, EditMode = true, PagePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", PageTemplateModules = new List<PageTemplateModule> { | 
		
	
		
			
				|  |  |  |  |                 new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.Roles, Oqtane.Client", ModulePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", Title = "Role Management", Pane = "top", ContainerType = "Oqtane.Themes.Theme2.Container2, Oqtane.Client", Content = "" } | 
		
	
		
			
				|  |  |  |  |             }}); | 
		
	
		
			
				|  |  |  |  |             SiteTemplate.Add(new PageTemplate { Name = "Tenant Management", Parent = "Admin", Path = "admin/tenants", Order = 1, Icon = "list", IsNavigation = false, EditMode = true, PagePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", PageTemplateModules = new List<PageTemplateModule> { | 
		
	
		
			
				|  |  |  |  |                 new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.Tenants, Oqtane.Client", ModulePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", Title = "Upgrade", Pane = "top", ContainerType = "Oqtane.Themes.Theme2.Container2, Oqtane.Client", Content = "" } | 
		
	
		
			
				|  |  |  |  |             }}); | 
		
	
		
			
				|  |  |  |  |             SiteTemplate.Add(new PageTemplate { Name = "Upgrade", Parent = "Admin", Path = "admin/upgrade", Order = 1, Icon = "aperture", IsNavigation = false, EditMode = true, PagePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", PageTemplateModules = new List<PageTemplateModule> { | 
		
	
		
			
				|  |  |  |  |                 new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.Upgrade, Oqtane.Client", ModulePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", Title = "Site Management", Pane = "top", ContainerType = "Oqtane.Themes.Theme2.Container2, Oqtane.Client", Content = "" } | 
		
	
		
			
				|  |  |  |  |             }}); | 
		
	
		
			
				|  |  |  |  |             SiteTemplate.Add(new PageTemplate { Name = "Login", Parent = "", Path = "login", Order = 1, Icon = "lock-locked", IsNavigation = false, EditMode = false, PagePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"All Users;Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", PageTemplateModules = new List<PageTemplateModule> { | 
		
	
		
			
				|  |  |  |  |                 new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.Login, Oqtane.Client", ModulePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"All Users;Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", Title = "Login", Pane = "top", ContainerType = "Oqtane.Themes.Theme2.Container2, Oqtane.Client", Content = "" } | 
		
	
		
			
				|  |  |  |  |             }}); | 
		
	
		
			
				|  |  |  |  |             SiteTemplate.Add(new PageTemplate { Name = "Register", Parent = "", Path = "register", Order = 1, Icon = "person", IsNavigation = false, EditMode = false, PagePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"All Users;Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", PageTemplateModules = new List<PageTemplateModule> { | 
		
	
		
			
				|  |  |  |  |                 new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.Register, Oqtane.Client", ModulePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"All Users;Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", Title = "Register", Pane = "top", ContainerType = "Oqtane.Themes.Theme2.Container2, Oqtane.Client", Content = "" } | 
		
	
		
			
				|  |  |  |  |             }}); | 
		
	
		
			
				|  |  |  |  |             SiteTemplate.Add(new PageTemplate { Name = "Profile", Parent = "", Path = "profile", Order = 1, Icon = "person", IsNavigation = false, EditMode = false, PagePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"All Users;Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", PageTemplateModules = new List<PageTemplateModule> { | 
		
	
		
			
				|  |  |  |  |                 new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.Profile, Oqtane.Client", ModulePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"All Users;Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", Title = "User Profile", Pane = "top", ContainerType = "Oqtane.Themes.Theme2.Container2, Oqtane.Client", Content = "" } | 
		
	
		
			
				|  |  |  |  |             }}); | 
		
	
		
			
				|  |  |  |  |         } | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         public IEnumerable<Site> GetSites() | 
		
	
	
		
			
				
					
					|  |  |  | @ -110,6 +136,7 @@ namespace Oqtane.Repository | 
		
	
		
			
				|  |  |  |  |             ProfileRepository.AddProfile(new Profile { SiteId = site.SiteId, Name = "PostalCode", Title = "Postal Code", Description = "Postal Code Or Zip Code", Category = "Address", ViewOrder = 7, MaxLength = 50, DefaultValue = "", IsRequired = false, IsPrivate = false }); | 
		
	
		
			
				|  |  |  |  |             ProfileRepository.AddProfile(new Profile { SiteId = site.SiteId, Name = "Phone", Title = "Phone Number", Description = "Phone Number", Category = "Contact", ViewOrder = 8, MaxLength = 50, DefaultValue = "", IsRequired = false, IsPrivate = false }); | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |             List<ModuleDefinition> moduledefinitions = ModuleDefinitionRepository.GetModuleDefinitions(site.SiteId).ToList(); | 
		
	
		
			
				|  |  |  |  |             foreach (PageTemplate pagetemplate in SiteTemplate) | 
		
	
		
			
				|  |  |  |  |             { | 
		
	
		
			
				|  |  |  |  |                 int? parentid = null; | 
		
	
	
		
			
				
					
					|  |  |  | @ -139,26 +166,52 @@ namespace Oqtane.Repository | 
		
	
		
			
				|  |  |  |  |                 page.Panes = (string)property.GetValue(Activator.CreateInstance(type), null); | 
		
	
		
			
				|  |  |  |  |                 page = PageRepository.AddPage(page); | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |                 if (pagetemplate.ModuleDefinitionName != "") | 
		
	
		
			
				|  |  |  |  |                 foreach(PageTemplateModule pagetemplatemodule in pagetemplate.PageTemplateModules) | 
		
	
		
			
				|  |  |  |  |                 { | 
		
	
		
			
				|  |  |  |  |                     Module module = new Module | 
		
	
		
			
				|  |  |  |  |                     if (pagetemplatemodule.ModuleDefinitionName != "") | 
		
	
		
			
				|  |  |  |  |                     { | 
		
	
		
			
				|  |  |  |  |                         SiteId = site.SiteId, | 
		
	
		
			
				|  |  |  |  |                         ModuleDefinitionName = pagetemplate.ModuleDefinitionName, | 
		
	
		
			
				|  |  |  |  |                         Permissions = pagetemplate.ModulePermissions, | 
		
	
		
			
				|  |  |  |  |                     }; | 
		
	
		
			
				|  |  |  |  |                     module = ModuleRepository.AddModule(module); | 
		
	
		
			
				|  |  |  |  |                         ModuleDefinition moduledefinition = moduledefinitions.Where(item => item.ModuleDefinitionName == pagetemplatemodule.ModuleDefinitionName).FirstOrDefault(); | 
		
	
		
			
				|  |  |  |  |                         if (moduledefinition != null) | 
		
	
		
			
				|  |  |  |  |                         { | 
		
	
		
			
				|  |  |  |  |                             Models.Module module = new Models.Module | 
		
	
		
			
				|  |  |  |  |                             { | 
		
	
		
			
				|  |  |  |  |                                 SiteId = site.SiteId, | 
		
	
		
			
				|  |  |  |  |                                 ModuleDefinitionName = pagetemplatemodule.ModuleDefinitionName, | 
		
	
		
			
				|  |  |  |  |                                 Permissions = pagetemplatemodule.ModulePermissions, | 
		
	
		
			
				|  |  |  |  |                             }; | 
		
	
		
			
				|  |  |  |  |                             module = ModuleRepository.AddModule(module); | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |                     PageModule pagemodule = new PageModule | 
		
	
		
			
				|  |  |  |  |                     { | 
		
	
		
			
				|  |  |  |  |                         PageId = page.PageId, | 
		
	
		
			
				|  |  |  |  |                         ModuleId = module.ModuleId, | 
		
	
		
			
				|  |  |  |  |                         Title = pagetemplate.Title, | 
		
	
		
			
				|  |  |  |  |                         Pane = pagetemplate.Pane, | 
		
	
		
			
				|  |  |  |  |                         Order = 1, | 
		
	
		
			
				|  |  |  |  |                         ContainerType = pagetemplate.ContainerType | 
		
	
		
			
				|  |  |  |  |                     }; | 
		
	
		
			
				|  |  |  |  |                     PageModuleRepository.AddPageModule(pagemodule); | 
		
	
		
			
				|  |  |  |  |                             if (pagetemplatemodule.Content != "" && moduledefinition.ServerAssemblyName != "") | 
		
	
		
			
				|  |  |  |  |                             { | 
		
	
		
			
				|  |  |  |  |                                 Assembly assembly = AppDomain.CurrentDomain.GetAssemblies() | 
		
	
		
			
				|  |  |  |  |                                     .Where(item => item.FullName.StartsWith(moduledefinition.ServerAssemblyName)).FirstOrDefault(); | 
		
	
		
			
				|  |  |  |  |                                 if (assembly != null) | 
		
	
		
			
				|  |  |  |  |                                 { | 
		
	
		
			
				|  |  |  |  |                                     Type moduletype = assembly.GetTypes() | 
		
	
		
			
				|  |  |  |  |                                         .Where(item => item.Namespace != null) | 
		
	
		
			
				|  |  |  |  |                                         .Where(item => item.Namespace.StartsWith(moduledefinition.ModuleDefinitionName.Substring(0, moduledefinition.ModuleDefinitionName.IndexOf(",")))) | 
		
	
		
			
				|  |  |  |  |                                         .Where(item => item.GetInterfaces().Contains(typeof(IPortable))).FirstOrDefault(); | 
		
	
		
			
				|  |  |  |  |                                     if (moduletype != null) | 
		
	
		
			
				|  |  |  |  |                                     { | 
		
	
		
			
				|  |  |  |  |                                         var moduleobject = ActivatorUtilities.CreateInstance(ServiceProvider, moduletype); | 
		
	
		
			
				|  |  |  |  |                                         ((IPortable)moduleobject).ImportModule(module, pagetemplatemodule.Content, moduledefinition.Version); | 
		
	
		
			
				|  |  |  |  |                                     } | 
		
	
		
			
				|  |  |  |  |                                 } | 
		
	
		
			
				|  |  |  |  |                             } | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |                             PageModule pagemodule = new PageModule | 
		
	
		
			
				|  |  |  |  |                             { | 
		
	
		
			
				|  |  |  |  |                                 PageId = page.PageId, | 
		
	
		
			
				|  |  |  |  |                                 ModuleId = module.ModuleId, | 
		
	
		
			
				|  |  |  |  |                                 Title = pagetemplatemodule.Title, | 
		
	
		
			
				|  |  |  |  |                                 Pane = pagetemplatemodule.Pane, | 
		
	
		
			
				|  |  |  |  |                                 Order = 1, | 
		
	
		
			
				|  |  |  |  |                                 ContainerType = pagetemplatemodule.ContainerType | 
		
	
		
			
				|  |  |  |  |                             }; | 
		
	
		
			
				|  |  |  |  |                             PageModuleRepository.AddPageModule(pagemodule); | 
		
	
		
			
				|  |  |  |  |                         } | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |                     } | 
		
	
		
			
				|  |  |  |  |                 } | 
		
	
		
			
				|  |  |  |  |             } | 
		
	
		
			
				|  |  |  |  |         } | 
		
	
	
		
			
				
					
					|  |  |  | 
 |