diff --git a/Aaru.Server/Components/Admin/Pages/TestedMedia/Sequential/Edit.razor b/Aaru.Server/Components/Admin/Pages/TestedMedia/Sequential/Edit.razor new file mode 100644 index 00000000..428cb20e --- /dev/null +++ b/Aaru.Server/Components/Admin/Pages/TestedMedia/Sequential/Edit.razor @@ -0,0 +1,46 @@ +@page "/admin/tested-media/sequential/edit/{Id:int}" +@attribute [Authorize] +@layout AdminLayout +@rendermode InteractiveServer + +@inject Microsoft.EntityFrameworkCore.IDbContextFactory DbContextFactory + +Edit Tested Sequential Media + +@if(_notFound) +{ +
Tested sequential media not found.
+} +else +{ + + + +
+ + + +
+
+ + + +
+
+ + + +
+ + Cancel +
+} + +@if(_success) +{ +
Tested sequential media saved successfully.
+} +@if(_error) +{ +
Error saving tested sequential media.
+} diff --git a/Aaru.Server/Components/Admin/Pages/TestedMedia/Sequential/Edit.razor.cs b/Aaru.Server/Components/Admin/Pages/TestedMedia/Sequential/Edit.razor.cs new file mode 100644 index 00000000..59017435 --- /dev/null +++ b/Aaru.Server/Components/Admin/Pages/TestedMedia/Sequential/Edit.razor.cs @@ -0,0 +1,78 @@ +using System.ComponentModel.DataAnnotations; +using Aaru.CommonTypes.Metadata; +using Microsoft.AspNetCore.Components; +using DbContext = Aaru.Server.Database.DbContext; + +namespace Aaru.Server.Components.Admin.Pages.TestedMedia.Sequential; + +public partial class Edit : ComponentBase +{ + private bool _error; + private EditModel _model = new(); + private bool _notFound; + private bool _success; + [Parameter] + public int Id { get; set; } + + protected override async Task OnInitializedAsync() + { + await using DbContext ctx = await DbContextFactory.CreateDbContextAsync(); + TestedSequentialMedia? entity = await ctx.TestedSequentialMedia.FindAsync(Id); + + if(entity != null) + { + _model = new EditModel + { + Id = entity.Id, + Manufacturer = entity.Manufacturer, + Model = entity.Model, + MediumTypeName = entity.MediumTypeName + }; + } + else + _notFound = true; + } + + private async Task HandleValidSubmitAsync() + { + _success = false; + _error = false; + + try + { + await using DbContext ctx = await DbContextFactory.CreateDbContextAsync(); + TestedSequentialMedia? entity = await ctx.TestedSequentialMedia.FindAsync(_model.Id); + + if(entity == null) + { + _error = true; + + return; + } + + entity.Manufacturer = _model.Manufacturer; + entity.Model = _model.Model; + entity.MediumTypeName = _model.MediumTypeName; + await ctx.SaveChangesAsync(); + _success = true; + } + catch + { + _error = true; + } + } + + public class EditModel + { + public int Id { get; set; } + [Required] + [StringLength(100)] + public string Manufacturer { get; set; } = string.Empty; + [Required] + [StringLength(100)] + public string Model { get; set; } = string.Empty; + [Required] + [StringLength(100)] + public string MediumTypeName { get; set; } = string.Empty; + } +} \ No newline at end of file