UpdateDrivesUseCase.cs 709 B

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