A sample project showing different ways of implementing repository pattern