Skip to content

Commit 2d413e8

Browse files
committed
Basic ability to create new hazards
1 parent 20768a8 commit 2d413e8

5 files changed

Lines changed: 51 additions & 9 deletions

File tree

admin/TwoWeeksReady.Admin/Data/FunctionsRepository.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,5 +72,18 @@ public async Task<HazardInfo> SaveHazardInfo(HazardInfo hazardInfo)
7272
throw new Exception("Error saving hazard info");
7373
}
7474
}
75+
76+
public async Task<HazardInfo> CreateHazardInfo(HazardInfo hazardInfo)
77+
{
78+
var response = await _httpClient.PostAsJsonAsync("hazardinfo-create", hazardInfo);
79+
if (response.IsSuccessStatusCode)
80+
{
81+
return await response.Content.ReadFromJsonAsync<HazardInfo>();
82+
}
83+
else
84+
{
85+
throw new Exception("Error saving hazard info");
86+
}
87+
}
7588
}
7689
}

admin/TwoWeeksReady.Admin/Data/IRepository.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,9 @@ public interface IRepository
2323

2424
Task<HazardInfo> GetHazardInfoById(string id);
2525

26-
Task<HazardInfo> SaveHazardInfo(HazardInfo hazardInfo);
26+
Task<HazardInfo> SaveHazardInfo(HazardInfo hazardInfo);
27+
28+
Task<HazardInfo> CreateHazardInfo(HazardInfo hazardInfo);
2729
}
2830

2931
}

admin/TwoWeeksReady.Admin/Data/StubRepository.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,13 @@ public Task<HazardInfo> SaveHazardInfo(HazardInfo hazardInfo)
103103
{
104104
return Task.FromResult(hazardInfo);
105105
}
106+
107+
public Task<HazardInfo> CreateHazardInfo(HazardInfo hazardInfo)
108+
{
109+
return Task.FromResult(hazardInfo);
110+
}
111+
112+
106113
}
107114

108115
}

admin/TwoWeeksReady.Admin/Pages/HazardInfos/Details.razor

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
@page "/HazardInfos/{id}"
2+
@page "/HazardInfos/new"
23
@attribute [Authorize(Roles = "admin")]
34

45
@inject IRepository repository
@@ -46,13 +47,30 @@ else
4647

4748
protected override async Task OnInitializedAsync()
4849
{
49-
Hazard = await repository.GetHazardInfoById(Id);
50+
if (string.IsNullOrEmpty(Id))
51+
{
52+
Hazard = new HazardInfo();
53+
54+
}
55+
else
56+
{
57+
Hazard = await repository.GetHazardInfoById(Id);
58+
}
59+
5060
}
5161

5262

5363
public async Task Save()
5464
{
55-
Hazard = await repository.SaveHazardInfo(Hazard);
65+
if (string.IsNullOrEmpty(Hazard.Id))
66+
{
67+
Hazard = await repository.CreateHazardInfo(Hazard);
68+
}
69+
else
70+
{
71+
Hazard = await repository.SaveHazardInfo(Hazard);
72+
}
73+
5674
//await OnSave.InvokeAsync(Hazard);
5775
5876
await JS.InvokeVoidAsync("alert", new object[] { "Hazard Info Saved" });

admin/TwoWeeksReady.Admin/Pages/HazardInfos/List.razor

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,15 @@
11
@page "/HazardInfos/"
22
@attribute [Authorize(Roles = "admin")]
33
@inject IRepository Repository
4-
<h1>Administer Hazard Info for Two Weeks Ready</h1>
5-
6-
<h3>Current Hazards Defined:</h3>
4+
<h1>Administer Hazard Info</h1>
75

86
@if (_HazardInfos != null && _HazardInfos.Any())
97
{
108

119
<table>
1210
<thead>
1311
<tr>
14-
<th>Name</th>
12+
<th>Name</th>
1513
</tr>
1614
</thead>
1715
<tbody>
@@ -21,7 +19,7 @@
2119
<tr>
2220
<td>
2321
<a href="/HazardInfos/@hazard.Id">
24-
@hazard.Name
22+
@hazard.Name
2523
</a>
2624
</td>
2725
</tr>
@@ -31,9 +29,13 @@
3129
</table>
3230

3331
}
32+
else if (_HazardInfos != null)
33+
{
34+
<p>Loading....</p>
35+
}
3436
else
3537
{
36-
<p>No Hazards defined.</p>
38+
<p>No hazard infos defined</p>
3739
}
3840

3941
@code {

0 commit comments

Comments
 (0)