Untitled
unknown
plain_text
3 years ago
3.9 kB
10
Indexable
FilmsIndex
<table class="table mt-2">
<thead>
<tr>
<th>Id</th>
<th>Title</th>
<th>Released</th>
<th>Free</th>
<th>Director</th>
<th>Description</th>
<th>FilmUrl</th>
</tr>
</thead>
<tbody>
@foreach (var item in Model)
{
<tr>
<td>@item.Id</td>
<td>@item.Title</td>
<td>@item.Released</td>
<td>@(item.Free ? "Free" : "Paid")</td>
<td>@item.DirectorName</td>
<td>@item.Description.Truncate(50)</td>
<td>@item.FilmUrl</td>
<td>
<div class="d-flex me-1 justify-content-end">
<button class="btn btn-outline-primary rounded-0 me-1" @onclick="@(() => OnClick.InvokeAsync(new ClickModel(PageType.Edit, item.Id)))">Edit</button>
<button class="btn btn-outline-danger rounded-0" @onclick="@(() => OnClick.InvokeAsync(new ClickModel(PageType.Delete, item.Id)))">Delete</button>"
</div>
</td>
</tr>
}
</tbody>
</table>
@code {
[Parameter] public List<FilmDTO> Model { get; set; } = new();
[Parameter] public EventCallback<ClickModel> OnClick { get; set; }
}
FilmsPortal
@inject IAdminService AdminService
<h3>@Navigation</h3>
@if (!string.IsNullOrEmpty(Alert))
{
<div class="d-flex">
<div class="alert alert-danger alert-dismissible fade show" role="alert">
<strong>@Alert</strong>
<button type="button" @onclick="CloseAlert" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
</div>
</div>
}
@if (Navigation == PageType.Create)
{
<ChangeFilm Page="@Navigation" OnChange="OnChange"></ChangeFilm>
}
@if (Navigation == PageType.Delete || Navigation == PageType.Edit)
{
<ChangeFilm Page="@Navigation" OnChange="OnChange" Model="Film"></ChangeFilm>
}
<div class="d-flex me-1">
<a href="/" class="btn btn-outline-secondary rounded-0 me-1">Home</a>
<button type="button" class="btn btn-outline-primary rounded-0 me-1" @onclick="()=>ChangePageType(PageType.Index)">Index</button>
<button type="button" class="btn btn-outline-success rounded-0" @onclick="()=>ChangePageType(PageType.Create)">Create</button>
</div>
<FilmsIndex OnClick="OnClick" Model="Model"></FilmsIndex>
@code {
string Navigation { get; set; } = PageType.Index;
List<FilmDTO> Model { get; set; } = new(); //Den här har jag ovanför Navigation
string Alert { get; set; } = string.Empty;
public FilmDTO Film { get; set; } = new();
void CloseAlert() => Alert = string.Empty; //dessa två metoder har jag tvärsom
void ChangePageType(string pageType) => Navigation = pageType; //denna
protected override async Task OnInitializedAsync()
{
Alert = "";
//await AdminService.CreateAsync<FilmCreateDTO>($"Films", new FilmCreateDTO()
//{
// Title = "Testfilmen",
// Free = true,
// Description = "sadadadada",
// DirectorId = 2,
// FilmUrl = "wwww.www.www",
// Released = new DateTime(10, 10, 10)
//});
}
async Task OnClick(ClickModel model)
{
if (model.PageType.Equals(PageType.Edit) || model.PageType.Equals(PageType.Delete))
Film = await AdminService.SingleAsync<FilmDTO>($"Films/{model.Id}") ?? new();
ChangePageType(model.PageType);
}
async Task OnChange(string alert)
{
try
{
Alert = alert;
Model = await AdminService.GetAsync<FilmDTO>("films");
ChangePageType(PageType.Index);
}
catch
{
Alert = "Warning warning";
}
}
}
Editor is loading...