Cześć. Stworzyłem sobie IRepository jest to interface z deklaracjami metod CRUD. Wygląda to tak :
public interface IRepository<T>
{
Task<T> GetAsync(long id);
Task<IReadOnlyList<T>> GetAllAsync();
Task AddAsync(T entity);
Task UpdateAsync(T entity);
Task DeleteAsync(T entity);
}
Mam też klasę TenureRepository która implementuje ją :
public class TenureRepository : IRepository<Tenure>, ITenureRepository
{
private readonly ApplicationDbContext db;
public TenureRepository(ApplicationDbContext _db)
{
db = _db;
}
public async Task AddAsync(Tenure entity)
{
db.Tenures.Remove(entity);
db.SaveChanges();
await Task.CompletedTask;
}
public async Task DeleteAsync(Tenure entity)
{
db.Tenures.Remove(entity);
db.SaveChanges();
await Task.CompletedTask;
}
public async Task<IReadOnlyList<Tenure>> GetAllAsync()
{
return await db.Tenures.ToListAsync();
}
public async Task<Tenure> GetAsync(long id)
{
return await db.Tenures.FirstOrDefaultAsync(x => x.Id == id);
}
public async Task UpdateAsync(Tenure entity)
{
db.Entry(entity).State = EntityState.Modified;
db.SaveChanges();
await Task.CompletedTask;
}
}
Teraz stwprzyłem sobie serwis TenureService i chciałbym pobrać metodę GetAllAsync ale jej nie znajduje dlaczego ?
wygląda to tak:
internal class TenureBusinessService : ITenureBusinessService
{
private readonly IMapper mapper;
private readonly ITenureRepository tenureRepository;
public TenureBusinessService(IMapper _mapper, ITenureRepository _tenureRepository)
{
mapper = _mapper;
tenureRepository = _tenureRepository;
}
public async Task<IReadOnlyList<TenureListDto>> GetAllAsync()
{
var payload = await tenureRepository.GetAllAsync(); // Tutaj jest błąd
}
}