// src/Webshop.Infrastructure/Repositories/AddressRepository.cs using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Webshop.Domain.Entities; using Webshop.Domain.Interfaces; using Webshop.Infrastructure.Data; namespace Webshop.Infrastructure.Repositories { public class AddressRepository : IAddressRepository { private readonly ApplicationDbContext _context; public AddressRepository(ApplicationDbContext context) { _context = context; } public async Task> GetAllForCustomerAsync(Guid customerId) { return await _context.Addresses .Where(a => a.CustomerId == customerId) .ToListAsync(); } public async Task GetByIdAsync(Guid id) { return await _context.Addresses.FindAsync(id); } public async Task AddAsync(Address address) { _context.Addresses.Add(address); await _context.SaveChangesAsync(); } public async Task UpdateAsync(Address address) { _context.Addresses.Update(address); await _context.SaveChangesAsync(); } public async Task DeleteAsync(Guid id) { var address = await _context.Addresses.FindAsync(id); if (address != null) { _context.Addresses.Remove(address); await _context.SaveChangesAsync(); } } } }