RemoveDriveUseCase.cs 640 B

1234567891011121314151617
  1. using RackPeek.Domain.Resources.Hardware.Models;
  2. namespace RackPeek.Domain.Resources.Hardware.Servers.Drives;
  3. public class RemoveDriveUseCase(IHardwareRepository repository)
  4. {
  5. public async Task ExecuteAsync(string serverName, int index)
  6. {
  7. var hardware = await repository.GetByNameAsync(serverName);
  8. if (hardware is not Server server) return;
  9. server.Drives ??= [];
  10. if (index < 0 || index >= server.Drives.Count)
  11. throw new ArgumentOutOfRangeException(nameof(index), "Drive index out of range.");
  12. server.Drives.RemoveAt(index);
  13. await repository.UpdateAsync(server);
  14. }
  15. }