@page "/domain/{Id:int}" @using Moonlight.App.Repositories.Domains @using Moonlight.App.Database.Entities @using Microsoft.EntityFrameworkCore @using Moonlight.App.Models.Misc @using Moonlight.App.Services @using CloudFlare.Client.Enumerators @using Moonlight.App.Services.Interop @inject DomainRepository DomainRepository @inject DomainService DomainService @inject SmartTranslateService SmartTranslateService @inject NavigationManager NavigationManager @inject AlertService AlertService @if (Domain == null) {
This domain does not exist or you have no access to it
} else { var domainNameBuilt = $"{Domain.Name}.{Domain.SharedDomain.Name}";
DNS records for@(domainNameBuilt)
@if (DnsRecords.Any()) {
@foreach (var record in DnsRecords) {

}
} else {
No dns records found
}
}
@code { [Parameter] public int Id { get; set; } [CascadingParameter] public User? User { get; set; } private Domain? Domain; private DnsRecord[] DnsRecords; private DnsRecord NewRecord = new() { Ttl = 1, Priority = 0 }; private LazyLoader DnsLazyLoader; private async Task Load(LazyLoader arg) { Domain = DomainRepository .Get() .Include(x => x.SharedDomain) .Include(x => x.Owner) .FirstOrDefault(x => x.Id == Id); if (Domain == null) return; if (User == null) { Domain = null; return; } if (Domain.Owner.Id != User.Id && !User.Admin) { Domain = null; return; } } private async Task LoadDnsRecords(LazyLoader lazyLoader) { await lazyLoader.SetText(SmartTranslateService.Translate("Fetching dns records")); DnsRecords = await DomainService.GetDnsRecords(Domain!); } private async Task Save(DnsRecord record) { await DomainService.UpdateDnsRecord(Domain!, record); await DnsLazyLoader.Reload(); } private async Task Add() { await DomainService.AddDnsRecord(Domain!, NewRecord); NewRecord = new() { Ttl = 1, Priority = 0 }; await DnsLazyLoader.Reload(); } private async Task Delete(DnsRecord record) { await DomainService.DeleteDnsRecord(Domain!, record); await DnsLazyLoader.Reload(); } private async Task Delete() { if (await AlertService.ConfirmMath()) { await DomainService.Delete(Domain!); NavigationManager.NavigateTo("/domains"); } } }