AddDesktopUseCase.cs 846 B

1234567891011121314151617181920212223242526272829303132
  1. using RackPeek.Domain.Resources.Hardware.Models;
  2. namespace RackPeek.Domain.Resources.Hardware.Desktop;
  3. public class AddDesktopUseCase
  4. {
  5. private readonly IHardwareRepository _repository;
  6. public AddDesktopUseCase(IHardwareRepository repository)
  7. {
  8. _repository = repository;
  9. }
  10. public async Task ExecuteAsync(string name)
  11. {
  12. var existing = await _repository.GetByNameAsync(name);
  13. if (existing != null)
  14. throw new InvalidOperationException($"Desktop '{name}' already exists.");
  15. var desktop = new Models.Desktop
  16. {
  17. Name = name,
  18. Cpus = new List<Cpu>(),
  19. Drives = new List<Drive>(),
  20. Nics = new List<Nic>(),
  21. Gpus = new List<Gpu>(),
  22. Ram = null
  23. };
  24. await _repository.AddAsync(desktop);
  25. }
  26. }