UpdateServerUseCase.cs 800 B

1234567891011121314151617181920212223242526272829303132
  1. using RackPeek.Domain.Resources.Hardware.Models;
  2. namespace RackPeek.Domain.Resources.Hardware.Server;
  3. public class UpdateServerUseCase(IHardwareRepository repository)
  4. {
  5. public async Task ExecuteAsync(
  6. string name,
  7. int? ramGb = null,
  8. bool? ipmi = null
  9. )
  10. {
  11. var server = await repository.GetByNameAsync(name) as Models.Server;
  12. if (server == null)
  13. throw new InvalidOperationException($"Server '{name}' not found.");
  14. // ---- RAM ----
  15. if (ramGb.HasValue)
  16. {
  17. server.Ram ??= new Ram();
  18. server.Ram.Size = ramGb.Value;
  19. }
  20. // ---- IPMI ----
  21. if (ipmi.HasValue)
  22. {
  23. server.Ipmi = ipmi.Value;
  24. }
  25. await repository.UpdateAsync(server);
  26. }
  27. }