SystemsDetailsPage.razor 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. @page "/resources/systems/{SystemName}"
  2. @using RackPeek.Domain.Resources.Hardware
  3. @using RackPeek.Domain.Resources.SystemResources
  4. @using RackPeek.Domain.Resources.SystemResources.UseCases
  5. @using RackPeek.Web.Components.Components
  6. @inject ISystemRepository SystemRepository
  7. @inject UpdateSystemUseCase UpdateSystemUseCase
  8. @inject GetSystemServiceTreeUseCase GetSystemServiceTreeUseCase
  9. <PageTitle>System Details</PageTitle>
  10. <ResourceBreadCrumbComponent
  11. ResourceType="ResourceType.System"
  12. ResourceName="@SystemName" />
  13. <div class="min-h-screen bg-zinc-950 text-zinc-200 font-mono p-6">
  14. @if (_system is null && !_loading)
  15. {
  16. <div class="text-zinc-500">System not found</div>
  17. }
  18. else if (_loading)
  19. {
  20. <div class="text-zinc-500">loading system…</div>
  21. }
  22. else
  23. {
  24. <h1 class="text-lg text-zinc-100 mb-6">
  25. @_system.Name (@_system.Kind)
  26. </h1>
  27. <SystemCardComponent System="_system" OnSave="UpdateSystem"/>
  28. @if (_tree is not null && _tree.Services.Any())
  29. {
  30. <SystemDependencyTreeComponent Tree="_tree"/>
  31. }
  32. else
  33. {
  34. <div class="text-zinc-400 m-2">
  35. No child systems / services
  36. </div>
  37. }
  38. }
  39. </div>
  40. @code {
  41. [Parameter] public string SystemName { get; set; } = string.Empty;
  42. private SystemResource? _system;
  43. private bool _loading = true;
  44. SystemDependencyTree? _tree;
  45. protected override async Task OnInitializedAsync()
  46. {
  47. _system = await SystemRepository.GetByNameAsync(SystemName);
  48. _tree = null;
  49. if (!string.IsNullOrEmpty(_system?.Name))
  50. {
  51. _tree = await GetSystemServiceTreeUseCase.ExecuteAsync(_system?.Name!);
  52. }
  53. _loading = false;
  54. }
  55. async Task UpdateSystem(SystemEditModel edit)
  56. {
  57. await UpdateSystemUseCase.ExecuteAsync(
  58. edit.Name,
  59. edit.Type,
  60. edit.Os,
  61. edit.Cores,
  62. edit.Ram,
  63. edit.RunsOn
  64. );
  65. }
  66. }