UpdateNicUseCase.cs 801 B

12345678910111213141516171819202122232425262728293031
  1. using RackPeek.Domain.Resources.Hardware.Models;
  2. namespace RackPeek.Domain.Resources.Hardware.Servers.Nics;
  3. public class UpdateNicUseCase(IHardwareRepository repository)
  4. {
  5. public async Task ExecuteAsync(
  6. string serverName,
  7. int index,
  8. string type,
  9. int speed,
  10. int ports)
  11. {
  12. var hardware = await repository.GetByNameAsync(serverName);
  13. if (hardware is not Server server)
  14. return;
  15. server.Nics ??= [];
  16. if (index < 0 || index >= server.Nics.Count)
  17. throw new ArgumentOutOfRangeException(nameof(index), "NIC index out of range.");
  18. var nic = server.Nics[index];
  19. nic.Type = type;
  20. nic.Speed = speed;
  21. nic.Ports = ports;
  22. await repository.UpdateAsync(server);
  23. }
  24. }