ServiceDetailsPage.razor 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. @page "/resources/services/{ServiceName}"
  2. @using RackPeek.Domain.Persistence
  3. @using RackPeek.Domain.Resources.Services
  4. @using RackPeek.Domain.Resources.Services.UseCases
  5. @using Shared.Rcl.Components
  6. @using Shared.Rcl.Components
  7. @inject IResourceCollection Repo
  8. @inject UpdateServiceUseCase UpdateServiceUseCase
  9. @inject NavigationManager NavigationManager
  10. <PageTitle>Service Details</PageTitle>
  11. <ResourceBreadCrumbComponent
  12. ResourceType="ResourceType.Service"
  13. ResourceName="@ServiceName"/>
  14. <div class="min-h-screen bg-zinc-950 text-zinc-200 font-mono p-6">
  15. @if (_service is null && !_loading)
  16. {
  17. <div class="text-zinc-500">Service not found</div>
  18. }
  19. else if (_loading)
  20. {
  21. <div class="text-zinc-500">loading service…</div>
  22. }
  23. else
  24. {
  25. <h1 class="text-lg text-zinc-100 mb-6">
  26. @_service.Name (@_service.Kind)
  27. </h1>
  28. <ServiceCardComponent Service="_service" OnSave="UpdateService" OnDeleted="OnDeleted"/>
  29. }
  30. </div>
  31. @code {
  32. [Parameter] public string ServiceName { get; set; } = string.Empty;
  33. private Service? _service;
  34. private bool _loading = true;
  35. protected override async Task OnInitializedAsync()
  36. {
  37. _service = await Repo.GetByNameAsync<Service>(ServiceName);
  38. _loading = false;
  39. }
  40. async Task UpdateService(ServiceEditModel edit)
  41. {
  42. await UpdateServiceUseCase.ExecuteAsync(
  43. edit.Name,
  44. edit.Ip,
  45. edit.Port,
  46. edit.Protocol,
  47. edit.Url,
  48. edit.RunsOn,
  49. edit.Notes
  50. );
  51. }
  52. private void OnDeleted(string obj)
  53. {
  54. NavigationManager.NavigateTo("/services/list");
  55. }
  56. }