@page "/jobs" @inject JobService JobService @inject NavigationManager Navigation Jobs

Jobs

New Job
@if (loading) {

Loading...

} else if (jobs.Count == 0) {
No jobs found. Create your first job.
} else { @foreach (var job in jobs) { }
Job # Name Customer Cutting Tool Last Modified Actions
@job.JobNumber @(job.Name ?? "-") @(job.Customer ?? "-") @(job.CuttingTool?.Name ?? "-") @((job.UpdatedAt ?? job.CreatedAt).ToLocalTime().ToString("g")) Edit Optimize
} @code { private List jobs = new(); private bool loading = true; private bool creating = false; private ConfirmDialog deleteDialog = null!; private Job? jobToDelete; private string deleteMessage = ""; protected override async Task OnInitializedAsync() { jobs = await JobService.GetAllAsync(); loading = false; } private async Task QuickCreateJob() { creating = true; try { var job = await JobService.QuickCreateAsync(); Navigation.NavigateTo($"jobs/{job.Id}"); } finally { creating = false; } } private void ConfirmDelete(Job job) { jobToDelete = job; deleteMessage = $"Are you sure you want to delete \"{job.DisplayName}\"? This will also delete all parts."; deleteDialog.Show(); } private async Task DeleteConfirmed() { if (jobToDelete != null) { await JobService.DeleteAsync(jobToDelete.Id); jobs = await JobService.GetAllAsync(); } } private async Task DuplicateJob(Job job) { var duplicate = await JobService.DuplicateAsync(job.Id); Navigation.NavigateTo($"jobs/{duplicate.Id}"); } }