@namespace Oqtane.Modules.Admin.Sites
@inherits ModuleBase
@inject NavigationManager NavigationManager
@inject ISiteService SiteService
@inject IAliasService AliasService
@inject IThemeService ThemeService
@if (themes == null)
{
Loading...
}
else
{
Cancel
}
@code {
public override SecurityAccessLevel SecurityAccessLevel { get { return SecurityAccessLevel.Host; } }
Dictionary themes = new Dictionary();
Dictionary panelayouts = new Dictionary();
List aliases;
string name = "";
string urls = "";
string logo = "";
string themetype;
string layouttype;
string createdby;
DateTime createdon;
string modifiedby;
DateTime modifiedon;
string deletedby;
DateTime? deletedon;
string isdeleted;
protected override void OnInitialized()
{
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)
{
urls += alias.Name + "\n";
}
logo = PageState.Site.Logo;
themetype = PageState.Site.DefaultThemeType;
layouttype = PageState.Site.DefaultLayoutType;
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();
}
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)
{
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());
}
}