82 lines
2.9 KiB
Plaintext
82 lines
2.9 KiB
Plaintext
@namespace Oqtane.Modules.Admin.Sites
|
|
@inherits ModuleBase
|
|
@inject NavigationManager NavigationManager
|
|
@inject IAliasService AliasService
|
|
@inject ISiteService SiteService
|
|
@inject IStringLocalizer<Index> Localizer
|
|
|
|
@if (_sites == null)
|
|
{
|
|
<p><em>Loading...</em></p>
|
|
}
|
|
else
|
|
{
|
|
<ActionLink Action="Add" Text="Add Site" ResourceKey="AddSite" />
|
|
|
|
<Pager Items="@_sites">
|
|
<Header>
|
|
<th style="width: 1px;"> </th>
|
|
<th style="width: 1px;"> </th>
|
|
<th>@Localizer["Name"]</th>
|
|
</Header>
|
|
<Row>
|
|
<td><ActionLink Action="Edit" Parameters="@($"id=" + context.AliasId.ToString())" ResourceKey="EditSite" /></td>
|
|
<td><ActionDialog Header="Delete Site" Message="@Localizer["Are You Sure You Wish To Delete The {0} Site?", context.Name]" Action="Delete" Security="SecurityAccessLevel.Admin" Class="btn btn-danger" OnClick="@(async () => await DeleteSite(context))" ResourceKey="DeleteSite" /></td>
|
|
<td><a href="@(_scheme + context.Name)">@context.Name</a></td>
|
|
</Row>
|
|
</Pager>
|
|
}
|
|
|
|
@code {
|
|
private List<Alias> _sites;
|
|
private string _scheme;
|
|
|
|
public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.Host;
|
|
|
|
protected override async Task OnParametersSetAsync()
|
|
{
|
|
var uri = new Uri(NavigationManager.Uri);
|
|
_scheme = uri.Scheme + "://";
|
|
|
|
var aliases = await AliasService.GetAliasesAsync();
|
|
_sites = new List<Alias>();
|
|
foreach (Alias alias in aliases)
|
|
{
|
|
if (!_sites.Exists(item => item.TenantId == alias.TenantId && item.SiteId == alias.SiteId))
|
|
{
|
|
_sites.Add(alias);
|
|
}
|
|
}
|
|
}
|
|
|
|
private async Task DeleteSite(Alias alias)
|
|
{
|
|
try
|
|
{
|
|
if (alias.SiteId != PageState.Site.SiteId || alias.TenantId != PageState.Site.TenantId)
|
|
{
|
|
SiteService.SetAlias(alias);
|
|
await SiteService.DeleteSiteAsync(alias.SiteId);
|
|
await Log(alias, LogLevel.Information, "", null, "Site Deleted {SiteId}", alias.SiteId);
|
|
|
|
var aliases = await AliasService.GetAliasesAsync();
|
|
foreach (Alias a in aliases.Where(item => item.SiteId == alias.SiteId && item.TenantId == alias.TenantId))
|
|
{
|
|
await AliasService.DeleteAliasAsync(a.AliasId);
|
|
}
|
|
|
|
NavigationManager.NavigateTo(NavigateUrl());
|
|
}
|
|
else
|
|
{
|
|
AddModuleMessage(Localizer["You Can Not Delete The Current Site"], MessageType.Warning);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
await Log(alias, LogLevel.Error, "", ex, "Error Deleting Site {SiteId} {Error}", alias.SiteId, ex.Message);
|
|
AddModuleMessage(Localizer["Error Deleting Site"], MessageType.Error);
|
|
}
|
|
}
|
|
}
|