AddGpuUseCase.cs 612 B

123456789101112131415161718192021222324252627
  1. using RackPeek.Domain.Resources.Hardware.Models;
  2. namespace RackPeek.Domain.Resources.Hardware.Servers.Gpus;
  3. public class AddGpuUseCase(IHardwareRepository repository) : IUseCase
  4. {
  5. public async Task ExecuteAsync(
  6. string serverName,
  7. string model,
  8. int vram)
  9. {
  10. var hardware = await repository.GetByNameAsync(serverName);
  11. if (hardware is not Server server)
  12. return;
  13. server.Gpus ??= [];
  14. server.Gpus.Add(new Gpu
  15. {
  16. Model = model,
  17. Vram = vram
  18. });
  19. await repository.UpdateAsync(server);
  20. }
  21. }