UpdateDriveUseCase.cs 721 B

1234567891011121314151617181920
  1. using RackPeek.Domain.Resources.Hardware.Models;
  2. namespace RackPeek.Domain.Resources.Hardware.Servers.Drives;
  3. public class UpdateDriveUseCase(IHardwareRepository repository)
  4. {
  5. public async Task ExecuteAsync(string serverName, int index, string type, int size)
  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. var drive = server.Drives[index];
  13. drive.Type = type;
  14. drive.Size = size;
  15. await repository.UpdateAsync(server);
  16. }
  17. }