I have a class that implements an interface and legacy from other class.
I don't know why my code is bad.
The error I get is:
CS0738 'SizeTypeService' does not implement interface member 'IGenericService<ItemType>.GetAll()'.
'GenericService<SizeType>.GetAll()' cannot implement 'IGenericService<ItemType>.GetAll()' because it does not have the matching return type of 'Task<List<ItemType>>'.
I think that my interface and class are ok. I don't know why VS is throwing an error.
public interface IGenericService<TEntity> where TEntity : class
{
Task<List<TEntity>> GetAll();
Task<TEntity> GetById(int id);
Task<TEntity> Insert(TEntity entity);
Task<TEntity> Update(TEntity entity);
Task Delete(int id);
}
public class GenericService<TEntity> : IGenericService<TEntity> where TEntity : class
{
private IGenericRepository<TEntity> genericRepository;
public GenericService(IGenericRepository<TEntity> genericRepository)
{
this.genericRepository = genericRepository;
}
public async Task Delete(int id)
{
await genericRepository.Delete(id);
}
public async Task<List<TEntity>> GetAll()
{
return await genericRepository.GetAll();
}
public async Task<TEntity> GetById(int id)
{
return await genericRepository.GetById(id);
}
public async Task<TEntity> Insert(TEntity entity)
{
return await genericRepository.Insert(entity);
}
public async Task<TEntity> Update(TEntity entity)
{
return await genericRepository.Update(entity);
}
}
public interface ISizeTypeService : IGenericService<ItemType>
{
Task<List<SizeType>> GetAllSizeTypeActives(int id);
Task LogicDelete(int id);
}
public class SizeTypeService : GenericService<SizeType>, ISizeTypeService
{
private ISizeTypeRepository sizeTypeRepository;
public SizeTypeService(ISizeTypeRepository sizeTypeRepository) : base(sizeTypeRepository)
{
this.sizeTypeRepository = sizeTypeRepository;
}
public Task<List<SizeType>> GetAllSizeTypeActives(int id)
{
return sizeTypeRepository.GetAllSizeTypeActives(id);
}
public Task LogicDelete(int id)
{
return sizeTypeRepository.LogicDelete(id);
}
}
