There is a Generic class which implements IRepository class. And it takes 2 arguments TEntity for Product class and TContext for ShopContext class.
public class