diff --git a/Oqtane.Client/Modules/Admin/Sites/Add.razor b/Oqtane.Client/Modules/Admin/Sites/Add.razor
index dc7bc739..ae79479e 100644
--- a/Oqtane.Client/Modules/Admin/Sites/Add.razor
+++ b/Oqtane.Client/Modules/Admin/Sites/Add.razor
@@ -95,8 +95,8 @@ else
string name = "";
string urls = "";
string logo = "";
- string themetype;
- string layouttype;
+ string themetype = "";
+ string layouttype = "";
protected override async Task OnInitializedAsync()
{
@@ -108,23 +108,31 @@ else
private async Task SaveSite()
{
- Site site = new Site();
- site.Name = name;
- site.Logo = (logo == null ? "" : logo);
- site.DefaultThemeType = themetype;
- site.DefaultLayoutType = (layouttype == null ? "" : layouttype);
- site = await SiteService.AddSiteAsync(site);
-
- urls = urls.Replace("\n", ",");
- foreach(string name in urls.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries))
+ if (name != "" && urls != "" && themetype != "")
{
- Alias alias = new Alias();
- alias.Name = name;
- alias.TenantId = int.Parse(tenantid);
- alias.SiteId = site.SiteId;
- await AliasService.AddAliasAsync(alias);
+ Site site = new Site();
+ site.Name = name;
+ site.Logo = (logo == null ? "" : logo);
+ site.DefaultThemeType = themetype;
+ site.DefaultLayoutType = (layouttype == null ? "" : layouttype);
+ site = await SiteService.AddSiteAsync(site);
+
+ urls = urls.Replace("\n", ",");
+ foreach(string name in urls.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries))
+ {
+ Alias alias = new Alias();
+ alias.Name = name;
+ alias.TenantId = int.Parse(tenantid);
+ alias.SiteId = site.SiteId;
+ await AliasService.AddAliasAsync(alias);
+ }
+
+ NavigationManager.NavigateTo("http://" + urls.Split(',')[0], true);
+ }
+ else
+ {
+ ModuleInstance.AddModuleMessage("You Must Provide A Site Name, Alias, And Default Theme", MessageType.Warning);
}
- NavigationManager.NavigateTo("http://" + urls[0], true);
}
}
diff --git a/Oqtane.Client/Modules/Admin/Sites/Delete.razor b/Oqtane.Client/Modules/Admin/Sites/Delete.razor
index b2acba36..b9f7230f 100644
--- a/Oqtane.Client/Modules/Admin/Sites/Delete.razor
+++ b/Oqtane.Client/Modules/Admin/Sites/Delete.razor
@@ -19,6 +19,14 @@ else
+
+
+
+ |
+
+
+ |
+
@@ -80,7 +88,10 @@ else
Dictionary themes = new Dictionary();
Dictionary panelayouts = new Dictionary();
+ int siteid;
string name = "";
+ List aliases;
+ string urls = "";
string logo = "";
string themetype;
string layouttype;
@@ -92,27 +103,52 @@ else
DateTime? deletedon;
string isdeleted;
- protected override void OnInitialized()
+ protected override async Task OnInitializedAsync()
{
- themes = ThemeService.GetThemeTypes(PageState.Themes);
- panelayouts = ThemeService.GetPaneLayoutTypes(PageState.Themes);
- name = PageState.Site.Name;
- logo = PageState.Site.Logo;
- themetype = PageState.Site.DefaultThemeType;
- layouttype = PageState.Site.DefaultLayoutType;
+ try
+ {
+ themes = ThemeService.GetThemeTypes(PageState.Themes);
+ panelayouts = ThemeService.GetPaneLayoutTypes(PageState.Themes);
- createdby = PageState.Site.CreatedBy;
- createdon = PageState.Site.CreatedOn;
- modifiedby = PageState.Site.ModifiedBy;
- modifiedon = PageState.Site.ModifiedOn;
- deletedby = PageState.Site.DeletedBy;
- deletedon = PageState.Site.DeletedOn;
- isdeleted = PageState.Site.IsDeleted.ToString();
+ siteid = Int32.Parse(PageState.QueryString["id"]);
+ Site site = await SiteService.GetSiteAsync(siteid);
+ if (site != null)
+ {
+ name = site.Name;
+ aliases = PageState.Aliases.Where(item => item.SiteId == site.SiteId).ToList();
+ foreach (Alias alias in aliases)
+ {
+ urls += alias.Name + "\n";
+ }
+ logo = site.Logo;
+ themetype = site.DefaultThemeType;
+ layouttype = site.DefaultLayoutType;
+
+ createdby = site.CreatedBy;
+ createdon = site.CreatedOn;
+ modifiedby = site.ModifiedBy;
+ modifiedon = site.ModifiedOn;
+ deletedby = site.DeletedBy;
+ deletedon = site.DeletedOn;
+ isdeleted = site.IsDeleted.ToString();
+ }
+ }
+ catch (Exception ex)
+ {
+ ModuleInstance.AddModuleMessage(ex.Message, MessageType.Error);
+ }
}
private async Task DeleteSite()
{
- await SiteService.DeleteSiteAsync(PageState.Site.SiteId);
- NavigationManager.NavigateTo(NavigateUrl());
+ try
+ {
+ await SiteService.DeleteSiteAsync(PageState.Site.SiteId);
+ NavigationManager.NavigateTo(NavigateUrl());
+ }
+ catch (Exception ex)
+ {
+ ModuleInstance.AddModuleMessage(ex.Message, MessageType.Error);
+ }
}
}
diff --git a/Oqtane.Client/Modules/Admin/Sites/Edit.razor b/Oqtane.Client/Modules/Admin/Sites/Edit.razor
index 9fd5a24d..a406efd3 100644
--- a/Oqtane.Client/Modules/Admin/Sites/Edit.razor
+++ b/Oqtane.Client/Modules/Admin/Sites/Edit.razor
@@ -89,8 +89,9 @@ else
Dictionary themes = new Dictionary();
Dictionary panelayouts = new Dictionary();
- List aliases;
+ int siteid;
string name = "";
+ List aliases;
string urls = "";
string logo = "";
string themetype;
@@ -104,61 +105,91 @@ else
DateTime? deletedon;
string isdeleted;
- protected override void OnInitialized()
+ protected override async Task OnInitializedAsync()
{
- aliases = PageState.Aliases.Where(item => item.TenantId == PageState.Alias.TenantId && item.SiteId == PageState.Site.SiteId).ToList();
- themes = ThemeService.GetThemeTypes(PageState.Themes);
- panelayouts = ThemeService.GetPaneLayoutTypes(PageState.Themes);
- name = PageState.Site.Name;
- foreach (Alias alias in aliases)
+ try
{
- urls += alias.Name + "\n";
- }
- logo = PageState.Site.Logo;
- themetype = PageState.Site.DefaultThemeType;
- layouttype = PageState.Site.DefaultLayoutType;
+ themes = ThemeService.GetThemeTypes(PageState.Themes);
+ panelayouts = ThemeService.GetPaneLayoutTypes(PageState.Themes);
- createdby = PageState.Site.CreatedBy;
- createdon = PageState.Site.CreatedOn;
- modifiedby = PageState.Site.ModifiedBy;
- modifiedon = PageState.Site.ModifiedOn;
- deletedby = PageState.Site.DeletedBy;
- deletedon = PageState.Site.DeletedOn;
- isdeleted = PageState.Site.IsDeleted.ToString();
+ siteid = Int32.Parse(PageState.QueryString["id"]);
+ Site site = await SiteService.GetSiteAsync(siteid);
+ if (site != null)
+ {
+ name = site.Name;
+ aliases = PageState.Aliases.Where(item => item.SiteId == site.SiteId).ToList();
+ foreach (Alias alias in aliases)
+ {
+ urls += alias.Name + "\n";
+ }
+ logo = site.Logo;
+ themetype = site.DefaultThemeType;
+ layouttype = site.DefaultLayoutType;
+
+ createdby = site.CreatedBy;
+ createdon = site.CreatedOn;
+ modifiedby = site.ModifiedBy;
+ modifiedon = site.ModifiedOn;
+ deletedby = site.DeletedBy;
+ deletedon = site.DeletedOn;
+ isdeleted = site.IsDeleted.ToString();
+ }
+ }
+ catch (Exception ex)
+ {
+ ModuleInstance.AddModuleMessage(ex.Message, MessageType.Error);
+ }
}
private async Task SaveSite()
{
- Site site = PageState.Site;
- site.Name = name;
- site.Logo = (logo == null ? "" : logo);
- site.DefaultThemeType = themetype;
- site.DefaultLayoutType = (layouttype == null ? "" : layouttype);
- site.IsDeleted = (isdeleted == null ? true : Boolean.Parse(isdeleted));
-
- site = await SiteService.UpdateSiteAsync(site);
-
- urls = urls.Replace("\n", ",");
- string[] names = urls.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
- foreach (Alias alias in aliases)
+ try
{
- if (!names.Contains(alias.Name))
+ if (name != "" && urls != "" && themetype != "")
{
- await AliasService.DeleteAliasAsync(alias.AliasId);
+ Site site = await SiteService.GetSiteAsync(siteid);
+ if (site != null)
+ {
+ site.Name = name;
+ site.Logo = (logo == null ? "" : logo);
+ site.DefaultThemeType = themetype;
+ site.DefaultLayoutType = (layouttype == null ? "" : layouttype);
+ site.IsDeleted = (isdeleted == null ? true : Boolean.Parse(isdeleted));
+
+ site = await SiteService.UpdateSiteAsync(site);
+
+ urls = urls.Replace("\n", ",");
+ string[] names = urls.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
+ foreach (Alias alias in aliases)
+ {
+ if (!names.Contains(alias.Name))
+ {
+ await AliasService.DeleteAliasAsync(alias.AliasId);
+ }
+ }
+ foreach (string name in names)
+ {
+ if (!aliases.Exists(item => item.Name == name))
+ {
+ Alias alias = new Alias();
+ alias.Name = name;
+ alias.TenantId = PageState.Alias.TenantId;
+ alias.SiteId = site.SiteId;
+ await AliasService.AddAliasAsync(alias);
+ }
+ }
+
+ NavigationManager.NavigateTo(NavigateUrl());
+ }
+ }
+ else
+ {
+ ModuleInstance.AddModuleMessage("You Must Provide A Site Name, Alias, And Default Theme", MessageType.Warning);
}
}
- foreach (string name in names)
+ catch (Exception ex)
{
- if (!aliases.Exists(item => item.Name == name))
- {
- Alias alias = new Alias();
- alias.Name = name;
- alias.TenantId = PageState.Alias.TenantId;
- alias.SiteId = site.SiteId;
- await AliasService.AddAliasAsync(alias);
- }
+ ModuleInstance.AddModuleMessage(ex.Message, MessageType.Error);
}
-
- NavigationManager.NavigateTo(NavigateUrl());
}
}
diff --git a/Oqtane.Client/Modules/Admin/Tenants/Add.razor b/Oqtane.Client/Modules/Admin/Tenants/Add.razor
index 5584ff22..7fb021e1 100644
--- a/Oqtane.Client/Modules/Admin/Tenants/Add.razor
+++ b/Oqtane.Client/Modules/Admin/Tenants/Add.razor
@@ -42,6 +42,7 @@
private async Task SaveTenant()
{
+ connectionstring = connectionstring.Replace("\\\\", "\\");
GenericResponse response = await InstallationService.Install(connectionstring);
if (response.Success)
{
diff --git a/Oqtane.Client/Modules/Admin/Tenants/Edit.razor b/Oqtane.Client/Modules/Admin/Tenants/Edit.razor
index 17c90cac..a07de019 100644
--- a/Oqtane.Client/Modules/Admin/Tenants/Edit.razor
+++ b/Oqtane.Client/Modules/Admin/Tenants/Edit.razor
@@ -60,6 +60,7 @@
}
private async Task SaveTenant()
{
+ connectionstring = connectionstring.Replace("\\\\", "\\");
Tenant tenant = await TenantService.GetTenantAsync(tenantid);
if (tenant != null)
{
diff --git a/Oqtane.Server/Controllers/InstallationController.cs b/Oqtane.Server/Controllers/InstallationController.cs
index e32ed335..7e444a23 100644
--- a/Oqtane.Server/Controllers/InstallationController.cs
+++ b/Oqtane.Server/Controllers/InstallationController.cs
@@ -38,7 +38,7 @@ namespace Oqtane.Controllers
{
bool master = false;
string defaultconnectionstring = Config.GetConnectionString("DefaultConnection");
- if (string.IsNullOrEmpty(defaultconnectionstring) || connectionstring != defaultconnectionstring)
+ if (string.IsNullOrEmpty(defaultconnectionstring) || connectionstring == defaultconnectionstring)
{
master = true;
}
@@ -126,7 +126,7 @@ namespace Oqtane.Controllers
{
initializationScript = reader.ReadToEnd();
}
- initializationScript = initializationScript.Replace("{ConnectionString}", connectionstring);
+ initializationScript = initializationScript.Replace("{ConnectionString}", connectionstring.Replace(datadirectory, "|DataDirectory|"));
initializationScript = initializationScript.Replace("{Alias}", HttpContext.Request.Host.Value);
}
@@ -218,8 +218,11 @@ namespace Oqtane.Controllers
{
foreach (Tenant tenant in db.Tenant.ToList())
{
+ connectionString = tenant.DBConnectionString;
+ connectionString = connectionString.Replace("|DataDirectory|", datadirectory);
+
// upgrade framework
- dbUpgradeConfig = DeployChanges.To.SqlDatabase(tenant.DBConnectionString)
+ dbUpgradeConfig = DeployChanges.To.SqlDatabase(connectionString)
.WithScriptsEmbeddedInAssembly(Assembly.GetExecutingAssembly());
dbUpgrade = dbUpgradeConfig.Build();
if (dbUpgrade.IsUpgradeRequired())
@@ -233,7 +236,7 @@ namespace Oqtane.Controllers
// iterate through Oqtane module assemblies and execute any database scripts
foreach (Assembly assembly in assemblies)
{
- InstallModule(assembly, tenant.DBConnectionString);
+ InstallModule(assembly, connectionString);
}
}
}
|