AddLaptopUseCase.cs 676 B

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