@page "/admin/users"
@using Microsoft.JSInterop
@inject IAdminManagementService AdminManagementService
@inject IJSRuntime JsRuntime
@layout AdminLayout
@attribute [Authorize(Roles = UserRoles.Admin)]
User Management Page
@if (_doctors == null || _patients == null)
{
Loading...
}
else
{
Doctors
| Name |
Email |
Actions |
@foreach (var doctor in _doctors)
{
| @doctor.Name |
@doctor.Email |
|
}
Patients
| Name |
Email |
Actions |
@foreach (var patient in _patients)
{
| @patient.Name |
@patient.Email |
|
}
}
@code {
private List _doctors = [];
private List _patients = [];
private string _errorMessage = string.Empty;
protected override async Task OnInitializedAsync()
{
try
{
var doctorsResult = await AdminManagementService.GetDoctors();
var patientsResult = await AdminManagementService.GetPatients();
_doctors = doctorsResult.Data;
_patients = patientsResult.Data;
}
catch (Exception ex)
{
_errorMessage = $"Error loading data: {ex.Message}";
}
}
private async Task DeleteDoctor(Guid id)
{
var confirmed = await JsRuntime.InvokeAsync("confirm", $"Are you sure you want to delete this doctor?");
if (confirmed)
{
var success = await AdminManagementService.DeleteDoctor(id);
if (success)
{
var doctorsResult = await AdminManagementService.GetDoctors();
_doctors = doctorsResult.Data;
}
else
{
_errorMessage = "Error deleting doctor.";
}
}
}
private async Task DeletePatient(Guid id)
{
var confirmed = await JsRuntime.InvokeAsync("confirm", $"Are you sure you want to delete this patient?");
if (confirmed)
{
var success = await AdminManagementService.DeletePatient(id);
if (success)
{
var patientsResult = await AdminManagementService.GetPatients();
_patients = patientsResult.Data;
}
else
{
_errorMessage = "Error deleting patient.";
}
}
}
}