@page "/rooms/search"
@rendermode InteractiveServer
@inject ImageUrlService Img
Search Rooms
Search Rooms
Search for rooms by name, description, or room ID.
@if (searching)
{
}
else if (!string.IsNullOrEmpty(error))
{
@error
}
else if (results != null && results.Count == 0)
{
No rooms found matching "@searchQuery".
}
else if (results != null)
{
| Room ID |
Image |
Name |
Creator |
State |
Dorm |
Actions |
@foreach (var room in results)
{
| @room.RoomId |
@if (!string.IsNullOrEmpty(room.ImageName))
{
}
|
@room.Name |
@room.CreatorAccountId |
@room.State |
@(room.IsDorm ? "Yes" : "No") |
Edit
|
}
}
@code {
[Inject] private HttpClient Http { get; set; } = default!;
private string searchQuery = "";
private bool searching;
private string? error;
private List? results;
private async Task DoSearch()
{
searching = true;
error = null;
results = null;
try
{
results = await Http.GetFromJsonAsync>($"/admin/api/rooms/search?q={Uri.EscapeDataString(searchQuery)}");
}
catch (Exception ex)
{
error = $"Search failed: {ex.Message}";
}
finally
{
searching = false;
}
}
}