Files
Moonlight/Moonlight/Shared/Views/Admin/Domains/New.razor
2023-04-10 03:40:08 +02:00

79 lines
2.7 KiB
Plaintext

@page "/admin/domains/new"
@using Moonlight.App.Services
@using Moonlight.App.Database.Entities
@using Moonlight.App.Models.Forms
@using Moonlight.App.Repositories
@using Moonlight.App.Repositories.Domains
@using Mappy.Net
@inject SmartTranslateService SmartTranslateService
@inject SharedDomainRepository SharedDomainRepository
@inject DomainRepository DomainRepository
@inject UserRepository UserRepository
@inject NavigationManager NavigationManager
<OnlyAdmin>
<div class="row mb-5">
<div class="card card-body p-10">
<LazyLoader Load="Load">
<SmartForm Model="Model" OnValidSubmit="Add">
<label class="form-label">
<TL>Domain name</TL>
</label>
<div class="input-group mb-5">
<span class="input-group-text">
<i class="bx bx-purchase-tag-alt"></i>
</span>
<InputText @bind-Value="Model.Name" class="form-control" placeholder="@(SmartTranslateService.Translate("Domain name"))"></InputText>
</div>
<div class="mb-5">
<label class="form-label">
<TL>Shared domain</TL>
</label>
<SmartSelect @bind-Value="Model.SharedDomain"
Items="SharedDomains"
DisplayField="@(x => x.Name)">
</SmartSelect>
</div>
<div class="input-group mb-5">
<SmartDropdown @bind-Value="Model.Owner"
Items="Users"
DisplayFunc="@(x => x.Email)"
SearchProp="@(x => x.Email)">
</SmartDropdown>
</div>
<button class="btn btn-success" type="submit">
<TL>Create</TL>
</button>
</SmartForm>
</LazyLoader>
</div>
</div>
</OnlyAdmin>
@code
{
private DomainDataModel Model = new();
private User[] Users;
private SharedDomain[] SharedDomains;
private Task Load(LazyLoader lazyLoader)
{
Users = UserRepository.Get().ToArray();
SharedDomains = SharedDomainRepository.Get().ToArray();
return Task.CompletedTask;
}
private Task Add()
{
var domain = Mapper.Map<Domain>(Model);
DomainRepository.Add(domain);
NavigationManager.NavigateTo("/admin/domains");
return Task.CompletedTask;
}
}