UpdateCpuUseCase.cs 801 B

12345678910111213141516171819202122232425262728293031
  1. namespace RackPeek.Domain.Resources.Hardware.Server.Cpu;
  2. public class UpdateCpuUseCase(IHardwareRepository repository)
  3. {
  4. public async Task ExecuteAsync(
  5. string serverName,
  6. int index,
  7. string model,
  8. int cores,
  9. int threads)
  10. {
  11. var hardware = await repository.GetByNameAsync(serverName);
  12. if (hardware is not Models.Server server)
  13. {
  14. return;
  15. }
  16. server.Cpus ??= [];
  17. if (index < 0 || index >= server.Cpus.Count)
  18. throw new ArgumentOutOfRangeException(nameof(index), "CPU index out of range.");
  19. var cpu = server.Cpus[index];
  20. cpu.Model = model;
  21. cpu.Cores = cores;
  22. cpu.Threads = threads;
  23. await repository.UpdateAsync(server);
  24. }
  25. }