@@ -30,14 +30,7 @@ public PersonController(
30
30
[ HttpGet ]
31
31
public async Task < IActionResult > Index ( )
32
32
{
33
- // Get the list of current people
34
- var people = await _client . ListAsync ( 1 , _settings . ResultsPageSize ) ;
35
- var personText = people . Count == 1 ? "person" : "people" ;
36
- _logger . LogDebug ( $ "{ people . Count } { personText } loaded via the service") ;
37
-
38
- // Construct the view model and serve the page
39
- var model = new PersonListViewModel ( ) ;
40
- model . SetEntities ( people , 1 , _settings . ResultsPageSize ) ;
33
+ var model = await CreatePersonListViewModel ( "" ) ;
41
34
return View ( model ) ;
42
35
}
43
36
@@ -187,5 +180,45 @@ public async Task<IActionResult> Edit(EditPersonViewModel model)
187
180
188
181
return result ;
189
182
}
183
+
184
+ /// <summary>
185
+ /// Handle POST events to delete an existing medication
186
+ /// </summary>
187
+ /// <param name="id"></param>
188
+ /// <returns></returns>
189
+ [ HttpPost ]
190
+ [ ValidateAntiForgeryToken ]
191
+ public async Task < IActionResult > Delete ( int id )
192
+ {
193
+ // Delete the item
194
+ _logger . LogDebug ( $ "Deleting person: ID = { id } ") ;
195
+ await _client . DeleteAsync ( id ) ;
196
+
197
+ // Return the list view with an empty list of items
198
+ var message = $ "Person with ID { id } successfully deleted";
199
+ var model = await CreatePersonListViewModel ( message ) ;
200
+ return View ( "Index" , model ) ;
201
+ }
202
+
203
+ /// <summary>
204
+ /// Build the person list view model
205
+ /// </summary>
206
+ /// <returns></returns>
207
+ private async Task < PersonListViewModel > CreatePersonListViewModel ( string message )
208
+ {
209
+ // Get the list of current people
210
+ var people = await _client . ListAsync ( 1 , _settings . ResultsPageSize ) ;
211
+ var personText = people . Count == 1 ? "person" : "people" ;
212
+ _logger . LogDebug ( $ "{ people . Count } { personText } loaded via the service") ;
213
+
214
+
215
+ // Construct the view model and serve the page
216
+ var model = new PersonListViewModel ( )
217
+ {
218
+ Message = message
219
+ } ;
220
+ model . SetEntities ( people , 1 , _settings . ResultsPageSize ) ;
221
+ return model ;
222
+ }
190
223
}
191
224
}
0 commit comments