ServiceDetailsPage.razor 1.7 KB

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