unit of work repository pattern c