ZenithInfo/Components/Pages/TurretsPages/Create.razor

104 lines
No EOL
5 KiB
Text

@page "/turrets/create"
@using System.Runtime.InteropServices.JavaScript
@using Microsoft.EntityFrameworkCore
@using ZenithInfo.Models
@inject IDbContextFactory<ZenithInfo.Data.ZenithInfoContext> DbFactory
@inject NavigationManager NavigationManager
<PageTitle>Create</PageTitle>
<h1>Create</h1>
<h2>Turret</h2>
<hr />
<div class="row">
<div class="col-md-4">
<EditForm method="post" Model="Turret" OnValidSubmit="AddTurret" FormName="create" Enhance>
<DataAnnotationsValidator />
<ValidationSummary class="text-danger" role="alert"/>
<div class="mb-3">
<label for="name" class="form-label">Name:</label>
<InputText id="name" @bind-Value="Turret.Name" class="form-control" />
<ValidationMessage For="() => Turret.Name" class="text-danger" />
</div>
<div class="mb-3">
<label for="description" class="form-label">Description:</label>
<InputText id="description" @bind-Value="Turret.Description" class="form-control" />
<ValidationMessage For="() => Turret.Description" class="text-danger" />
</div>
<div class="mb-3">
<label for="damage" class="form-label">Damage:</label>
<InputNumber id="damage" @bind-Value="Turret.Damage" class="form-control" />
<ValidationMessage For="() => Turret.Damage" class="text-danger" />
</div>
<div class="mb-3">
<label for="reload" class="form-label">Reload:</label>
<InputNumber id="reload" @bind-Value="Turret.Reload" class="form-control" />
<ValidationMessage For="() => Turret.Reload" class="text-danger" />
</div>
<div class="mb-3">
<label for="range" class="form-label">Range:</label>
<InputNumber id="range" @bind-Value="Turret.Range" class="form-control" />
<ValidationMessage For="() => Turret.Range" class="text-danger" />
</div>
<div class="mb-3">
<label for="optimal range" class="form-label">Optimal Range:</label>
<InputNumber id="optimal range" @bind-Value="Turret.OptimalRange" class="form-control" />
<ValidationMessage For="() => Turret.OptimalRange" class="text-danger" />
</div>
<div class="mb-3">
<label for="accuracy falloff range" class="form-label">Accuracy Falloff Range:</label>
<InputNumber id="accuracy falloff range" @bind-Value="Turret.AccuracyFalloffRange" class="form-control" />
<ValidationMessage For="() => Turret.AccuracyFalloffRange" class="text-danger" />
</div>
<div class="mb-3">
<label for="size" class="form-label">Size:</label>
<InputSelect id="size" @bind-Value="Turret.Size" class="form-control" />
<ValidationMessage For="() => Turret.Size" class="text-danger" />
</div>
<div class="mb-3">
<label for="rating" class="form-label">Type:</label>
<InputSelect id="rating" @bind-Value="Turret.Type" class="form-control" />
<ValidationMessage For="() => Turret.Type" class="text-danger" />
</div>
<div class="mb-3">
<label for="icon" class="form-label">Icon:</label>
<InputNumber id="icon" @bind-Value="Turret.Icon" class="form-control" />
<ValidationMessage For="() => Turret.Icon" class="text-danger" />
</div>
<div class="mb-3">
<label for="beam size" class="form-label">Beam Size:</label>
<InputNumber id="beam size" @bind-Value="Turret.BeamSize" class="form-control" />
<ValidationMessage For="() => Turret.BeamSize" class="text-danger" />
</div>
<div class="mb-3">
<label for="base cost" class="form-label">Base Cost:</label>
<InputNumber id="base cost" @bind-Value="Turret.BaseCost" class="form-control" />
<ValidationMessage For="() => Turret.BaseCost" class="text-danger" />
</div>
<div class="mb-3">
<label for="rarity" class="form-label">Rarity:</label>
<InputSelect id="rarity" @bind-Value="Turret.Rarity" class="form-control" />
<ValidationMessage For="() => Turret.Rarity" class="text-danger" />
</div>
<button type="submit" class="btn btn-primary">Create</button>
</EditForm>
</div>
</div>
<div>
<a href="/turrets">Back to List</a>
</div>
@code {
[SupplyParameterFromForm]
private Turret Turret { get; set; } = new();
private async Task AddTurret()
{
using var context = DbFactory.CreateDbContext();
context.Turret.Add(Turret);
await context.SaveChangesAsync();
NavigationManager.NavigateTo("/turrets");
}
}