AddDesktopUseCase.cs 707 B

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