UpdateServerUseCase.cs 772 B

1234567891011121314151617181920212223242526272829
  1. using RackPeek.Domain.Resources.Hardware.Models;
  2. namespace RackPeek.Domain.Resources.Hardware.Servers;
  3. public class UpdateServerUseCase(IHardwareRepository repository) : IUseCase
  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 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) server.Ipmi = ipmi.Value;
  22. await repository.UpdateAsync(server);
  23. }
  24. }