Untitled
unknown
plain_text
2 years ago
3.9 kB
6
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...