AddDesktopGpuUseCase.cs 659 B

123456789101112131415161718192021
  1. using RackPeek.Domain.Helpers;
  2. using RackPeek.Domain.Resources.Hardware.Models;
  3. namespace RackPeek.Domain.Resources.Hardware.Desktops.Gpus;
  4. public class AddDesktopGpuUseCase(IHardwareRepository repository) : IUseCase
  5. {
  6. public async Task ExecuteAsync(string name, Gpu gpu)
  7. {
  8. name = Normalize.HardwareName(name);
  9. ThrowIfInvalid.ResourceName(name);
  10. var desktop = await repository.GetByNameAsync(name) as Desktop
  11. ?? throw new NotFoundException($"Desktop '{name}' not found.");
  12. desktop.Gpus ??= new List<Gpu>();
  13. desktop.Gpus.Add(gpu);
  14. await repository.UpdateAsync(desktop);
  15. }
  16. }