ProductRepository.cs 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. using Products.Business.Domain;
  2. using Products.Business.Persistence;
  3. namespace Products.Business.Repository;
  4. public class ProductRepository : IProductRepository
  5. {
  6. private readonly DataContext _ctx;
  7. public ProductRepository(DataContext ctx)
  8. {
  9. _ctx = ctx;
  10. }
  11. public IEnumerable<Product?> GetProducts()
  12. {
  13. return _ctx.Products.ToList();
  14. }
  15. public Product? GetProduct(int id)
  16. {
  17. return _ctx.Products.FirstOrDefault(p => p.Id == id);
  18. }
  19. public Product AddProduct(Product product)
  20. {
  21. _ctx.Products.Add(product);
  22. _ctx.SaveChanges();
  23. return product;
  24. }
  25. public void UpdateProduct(Product product)
  26. {
  27. _ctx.Products.Update(product);
  28. _ctx.SaveChanges();
  29. }
  30. public void DeleteProduct(int id)
  31. {
  32. var product = _ctx.Products.FirstOrDefault(p => p.Id == id);
  33. if (product is null) return;
  34. _ctx.Products.Remove(product);
  35. _ctx.SaveChanges();
  36. }
  37. public bool ProductExists(int id)
  38. {
  39. return _ctx.Products.Any(p => p.Id == id);
  40. }
  41. }